클라이언트가 서버에 업로드 한 Excel 파일을받는 중입니다. 내가 본 모든 예제는 저장하는 방법을 보여줍니다. .파일을 서버에 저장하지 않고 파일 입력에서 파일을 Excel로 읽는 방법
내가해야할 일은 웹 페이지 및 FileReader에서 Excel 파일을 받고 엑셀 시트의 첫 번째 행에서 열 이름이 보존 된 데이터 테이블에 저장하는 것입니다.
아래의 코드는 필자가 필요로하는 것이지만 파일을 저장소에 먼저 저장하지 않고 데이터 테이블로 읽는 방법을 보여주지는 않습니다.
Excel 파일을 저장하고이 정보를 처리 한 후 모든 열 이름이 올바른지, 각 행의 데이터가 올바른지 확인해야합니다. 그러면이 정보를 SQL에 저장하는 프로세스가 시작됩니다 데이터 베이스.
열 이름을 유지하면서 Excel 파일을 데이터 테이블에 스트림으로 저장하려면 어떻게해야합니까?
** 테이블 이름이 중요하지 않음을 유의하십시오. Excel 책의 첫 번째 시트 만 처리하므로 각 행의 열 이름과 데이터 형식이 가장 중요합니다.
코드에서 인용했다 : 당신이 좋아하는 뭔가를 사용하여이 EPPlus을 할 수 http://www.aspsnippets.com/Articles/Read-and-Import-Excel-File-into-DataSet-or-DataTable-using-C-and-VBNet-in-ASPNet.aspx
using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
string FolderPath = ConfigurationManager.AppSettings["FolderPath"];
string FilePath = Server.MapPath(FolderPath + FileName);
FileUpload1.SaveAs(FilePath);
Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text);
}
}
private void Import_To_Grid(string FilePath, string Extension, string isHDR)
{
string conStr="";
switch (Extension)
{
case ".xls": //Excel 97-03
conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx": //Excel 07
conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
break;
}
conStr = String.Format(conStr, FilePath, isHDR);
OleDbConnection connExcel = new OleDbConnection(conStr);
OleDbCommand cmdExcel = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
DataTable dt = new DataTable();
cmdExcel.Connection = connExcel;
//Get the name of First Sheet
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
connExcel.Close();
//Read Data from First Sheet
connExcel.Open();
cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
oda.SelectCommand = cmdExcel;
oda.Fill(dt);
connExcel.Close();
//Bind Data to GridView
GridView1.Caption = Path.GetFileName(FilePath);
GridView1.DataSource = dt;
GridView1.DataBind();
}