2016-01-14 59 views
1

命令XLWorkbook workbook = new XLWorkbook();引發TypeInitializationException。 有趣的是,在另一個程序中,它的工作沒有問題,但在目前的一個我得到的例外。實例化XLWorkbook時的TypeInitializationException

版本是:0.69.1.0 運行時版本:v4.0.30319

在這一個節目的參考文獻:

  • ClosedXML
  • Microsoft.CSharp
  • 系統
  • 系統.Core
  • System.Data
  • System.Data.DataSetExceptions
  • System.Deployment
  • System.Runtime.Serialization
  • 的System.Xml
  • System.Xml.Linq的
  • 的System.Xml.Serialization

爲代碼:

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; 

編輯爲一些inf o:我已經試圖消除DataTable行,並使XLWorkbook行成爲程序執行的第一行,但仍然是同樣的問題。

我有點不知道那裏有什麼可能導致這種異常嗎?

+1

你能分享相關的代碼部分嗎? – daryal

+0

確實添加了它,但只要達到新的XLWorkbook命令,它就會一直存在。 – Thomas

+0

我懷疑問題與GetMyData()函數有關,你能分享相關的代碼段嗎? – daryal

回答

0

使用ClosedXML時,您需要引用Microsoft OpenXML SDK(DocumentFormat.OpenXml.dll,請參閱here)。

+0

週一將試穿。一個quesiton雖然可以有任何理由不需要引用documentFormat.OpenXml? (因爲我檢查了其他程序的工作原理,從來沒有看到那裏的參考) – Thomas

+0

不,沒有該引用,ClosedXML應該不起作用。也許你忽略了它。 – Raidri

+0

管理已經測試過。 Seeminlgy openxml在另一個程序的另一個子項目中,這就是問題所在。 TNX – Thomas