【问题标题】:TypeInitializationException when instantiating XLWorkbook实例化 XLWorkbook 时出现 TypeInitializationException
【发布时间】:2016-01-14 08:37:57
【问题描述】:

XLWorkbook workbook = new XLWorkbook(); 命令会引发 TypeInitializationException。 有趣的是,在另一个程序中它没有问题,但在当前的程序中我得到了异常。

版本是:0.69.1.0 运行时版本:v4.0.30319

在这个程序中的参考是:

  • 关闭XML
  • Microsoft.CSharp
  • 系统
  • System.Core
  • System.Data
  • System.Data.DataSetExceptions
  • System.Deployment
  • System.Runtime.Serialization
  • System.Xml
  • System.Xml.Linq
  • System.Xml.序列化

代码:

DataTable datenTabelle = GetMyData();
XLWorkbook workbook = new XLWorkbook();
IXLWorksheet worksheet = workbook.AddWorksheet(datenTabelle);
worksheet.Cells("A2:A" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Text;
worksheet.Cells("B2:B" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Text;
worksheet.Cells("C2:C" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Text;
worksheet.Cells("D2:D" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.DateTime;
worksheet.Cells("E2:E" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Text;
worksheet.Cells("F2:F" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Text;
worksheet.Cells("G2:G" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Number;
worksheet.Cells("H2:H" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Number;
worksheet.Cells("I2:I" + (datenTabelle.Rows.Count + 1).ToString()).DataType = XLCellValues.Number;

编辑为一些信息:我已经尝试消除 DataTable 行并使 XLWorkbook 行成为程序执行的第一个行,但仍然是同样的问题。

我有点不知道是什么导致了这个异常?

【问题讨论】:

  • 可以分享一下相关的代码部分吗?
  • 当然添加了它,但它总是只有在到达新的 XLWorkbook 命令时才添加。
  • 我怀疑这个问题与GetMyData()函数有关,你能分享一下相关代码吗?
  • @daryal 不这么认为(也将使用此信息更新问题):我消除了 GetMyData 并仅将 XLWorkbook 行用作程序的第一行,但仍然存在相同的问题.
  • 一般情况下,TypeInitialization 异常是构造函数中有字段 null 的标志。你安装了excel吗?

标签: c# visual-studio-2012 closedxml


【解决方案1】:

使用 ClosedXML 时,您需要参考 Microsoft OpenXML SDK (DocumentFormat.OpenXml.dll)。

【讨论】:

  • 星期一会试试看。一个问题虽然可能有任何理由不需要引用 documentFormat.OpenXml 吗? (因为我检查了另一个有效的程序,但从来没有看到对它的引用)
  • 不,ClosedXML 不应该在没有该引用的情况下工作。也许你忽略了它。
  • 已经设法对其进行了测试。 Openxml 似乎在另一个程序的另一个子项目中,这就是问题所在。 tnx
猜你喜欢
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
相关资源
最近更新 更多