.net Excelファイルの読み込み

4947 ワード

1.ユーザーがクライアントセグメントにExcelファイルをアップロードし、サービス側がExcelテーブルの読み取りと処理を完了することを許可する必要がある.問題と解決方法2.1まずの問題はファイルのアップロードに関する問題で、方法は実は2種類の2.1.1がinputラベルを利用してtypeをfileに変えることができて、submitを通じてサーバーにファイル//ピットを占拠して親測した後に2.1.2を補充するもっと簡単な方法はaspを利用することです.NetのコンポーネントFileUpload,button処理バックグラウンド読み出し
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        ”   ,     ,                ,        。。。