C#,创建excel 97-2003(.xls)Interop

时间:2010-12-17 10:43:32

标签: c# excel interop

使用Excel = Microsoft.Office.Interop.Excel;

我需要从我的datagridview中保存一个excel文件(.xls)。一切正常,写入数据,更改单元格格式等。但保存文档时出现问题。

string format = "yyyy_MM_dd_HH-mm";
string pathtoexport = @"C:\DM\SMS\Przychodzace\Znalezione_SMS_" + DateTime.Now.ToString(format) + ".xls";
oWB.SaveAs(pathtoexport, Excel.XlFileFormat.xlWorkbookNormal, missing, missing,
      false, false, Excel.XlSaveAsAccessMode.xlNoChange,
      missing, missing, missing, missing, missing);
    }

好几天前它正在运作,但现在它只能说

HRESULT:0x800A03EC“}

我需要.xls将它导入SQL。有什么建议吗?


问题发生在Excel.XlFileFormat.xlWorkbookDefault之前,当Iv将其更改为Normal时,它表现良好。现在它不起作用。我有足够的时间自己处理谷歌,但我失败了。

oWB.SaveAs(MyFile + @"C:\SMS\XMLCopy.xls",
      Excel.XlFileFormat.xlWorkbookNormal, missing, missing,
      false, false, Excel.XlSaveAsAccessMode.xlNoChange,
      missing, missing, missing, missing, missing);

5 个答案:

答案 0 :(得分:3)

 string format = "yyyy_MM_dd_HH-mm";
        string pathtoexport = "C:\\DM\\SMS\\Przychodzace\\Znalezione_SMS_" + DateTime.Now.ToString(format) + ".xls";

        oWB.SaveAs(pathtoexport, Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

现在它有效。谢谢你的帮助。

答案 1 :(得分:2)

尝试使用Excel.XlFileFormat.xlWorkbookDefault

答案 2 :(得分:0)

我的代码看不出任何明显错误。是否可能存在访问该路径的问题?如果您尝试手动将文件保存到该确切路径(假设您在运行互操作过程的同一帐户下登录),它是否有效?

否则,您使用某种Excel模板文件还是可能已损坏的东西?

答案 3 :(得分:0)

如果您/您的客户负担得起,Aspose.Cells非常适合从头开始生成Excel文档,无需需要在计算机上安装Office。

另一方面,该解决方案需要花钱。

答案 4 :(得分:0)

在我看来就像Interop版本冲突一样。您是否在以前使用的同一台计算机上遇到问题或者您是否已转移到另一台计算机上?如果您正在尝试回溯并找出任何更改或更新。如果你在另一个上,那么确认你安装了正确的版本。

这可能听起来很愚蠢但是我从dev开始时遇到了各种各样的奇怪 - >测试 - >由于环境之间的不一致而引发。

如果您还没有,请尝试从项目中删除引用并重新应用它。

也可能是由于权限(或缺少权限)。您是否尝试过使用同一段代码创建纯文本文件?