簡體   English   中英

使用Microsoft.Office.Interop.Excel將數據集導出到xlsx

[英]Exporting dataset to xlsx with Microsoft.Office.Interop.Excel

我使用以下代碼將數據集導出到xlsx。 當我在.net 4.0上時,一切正常,但是不幸的是,有一台服務器要求該框架位於3.5版中,而我對此無能為力。 所以我將框架從4.0更改為3.5,執行代碼時出現錯誤

舊格式或無效的類型庫。 (來自HRESULT的異常:0x80028018(TYPE_E_INVDATAREAD))

當波紋管執行時發生錯誤

Excel.Workbook workBook = excel.Workbooks.Add();

這是我的代碼

static void Main(string[] args)
        {

             String filepath = "C:/test.csv";            
             DataSet ds = Convert(filepath.ToString(), "tblCustomers", "\t");            
             Excel.Application excel = new Excel.Application();           
             Excel.Workbook workBook = excel.Workbooks.Add();   
             Excel.Worksheet sheet = (Excel.Worksheet)workBook.ActiveSheet;
            int i = 0;            
                for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                {
                    sheet.Cells[i + 1, j + 1] = ds.Tables[0].Columns[j].ToString();            
                }

                i = 1;                
            foreach (DataRow row in ds.Tables[0].Rows)
            {                              
                for (int j = 0; j < row.ItemArray.Length; j++)
                {
                    sheet.Cells[i + 1, j + 1] = row[j].ToString().Trim();
                    //cleangth = row[j].ToString().Trim().Length *10;

                }

                i++;
            }


            workBook.SaveAs(@System.IO.Directory.GetCurrentDirectory() + "\\test.xlsx");
            workBook.Close();           

        }

有什么建議么 ?

顯然,這是.NET 4.0( )中已修復的錯誤:如果Excel的區域設置與PC的區域設置不同,則會出現此錯誤。

從Microsoft:

當滿足以下條件時,您會收到此錯誤,調用Excel方法:

-該方法需要一個LCID(語言環境標識符)。

-您運行英語版本的Excel。 但是,計算機的區域設置被配置為非英語。

如果客戶端計算機運行英語版本的Excel,並且當前用戶的語言環境配置為使用英語以外的其他語言,則Excel將嘗試查找所配置語言的語言包。 如果找不到語言包,則報告錯誤。

要變通解決此問題,您可以使用下列方法之一:

-為您的Office版本安裝多語言用戶界面包。

-使用InvokeMember執行Excel方法或屬性,以便您可以為調用指定CultureInfo。 例如,以下代碼說明了如何使用“ en-US”作為CultureInfo調用Workbooks對象的Add方法。

-或者,在調用Excel方法之前設置CultureInfo。

請參閱此鏈接以獲取建議的解決方法的代碼示例: http : //support.microsoft.com/kb/320369

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM