繁体   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