.net Excelファイルの読み込み
4947 ワード
1.ユーザーがクライアントセグメントにExcelファイルをアップロードし、サービス側がExcelテーブルの読み取りと処理を完了することを許可する必要がある.問題と解決方法2.1まずの問題はファイルのアップロードに関する問題で、方法は実は2種類の2.1.1がinputラベルを利用してtypeをfileに変えることができて、submitを通じてサーバーにファイル//ピットを占拠して親測した後に2.1.2を補充するもっと簡単な方法はaspを利用することです.NetのコンポーネントFileUpload,button処理バックグラウンド読み出し
ダウンロード接続3.その後に遭遇したいくつかの穴を補充します
aspx
<asp:FileUpload CssClass="button_right" ID="Dep_FileUpload" runat="server"/>
<asp:Button ID="Button2" runat="server" Text=" " OnClick="Button2_Click"/>
aspx.cs
string fileName = Dep_FileUpload.FileName;
string sheetName = "Sheet1";
string filePath = Server.MapPath("~/UploadFiles/");
Dep_FileUpload.SaveAs(filePath + fileName);
DataTable dt = ExcelToDataTable(filePath+fileName,sheetName);
aspx.cs
/// strExcelFileName
/// strSheetName sheet Sheet1
public DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
try
{
//
//string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';";
//Sql
//string strExcel = string.Format("select * from [{0}$]", strSheetName);
string strExcel = "select * from [" + strSheetName + "$]";
//
DataSet ds = new DataSet();
//
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
return ds.Tables[strSheetName];
}
catch (System.Exception ex)
{
Response.Write(ex); //
return null;
}
}
2.2 Excel
HDR
YES, ( ), ;
NO, , , 。
IMEX
0, , Excel;
1, , Excel, Excel ;
2, , 、 。
2.3 C# conn.open()
.xls
.xls .xlsx
2.4 Microsoft.ACE.OLEDB.12.0
Microsoft.ACE.OLEDB.12.0
ダウンロード接続3.その後に遭遇したいくつかの穴を補充します
3.1 Excel datatable , Excel , “ **”, “SQL ” , , , 。。。