使用Spire组件抛出异常The type initializer for 'spr857' threw an exception

时间:2024-10-16 22:06:08

使用Spire组件抛出异常The type initializer for 'spr857' threw an exception

我使用免费的Spire.Xls组件尝试去转换Excel文档到PDF文档,在执行下面第二行代码,也就是做加载文档这步时,抛出了异常“The type initializer for 'spr857' threw an exception

Workbook workbook = new Workbook();

workbook.LoadFromFile("D:\\sample.xlsx");

workbook.SaveToFile("D:\\sample.pdf", Spire.Xls.FileFormat.PDF);

这个问题困扰了我老半天,在网上也没搜到它的解决方案,后来访问了E-iceblue公司的论坛,才找到了它的解决方案,E-iceblue 公司的技术人员回复的说是:please make sure Spire.pdf.dll file is placed in the same location as Spire.xls.dll.

根据这个意思我尝试了两种方案,都能解决这个问题,在这里分享一下:

方案1,将Spire.Xls包里的Spire.pdf.dll文件拷贝到Spire.Xls.dll相同的目录下。

使用Spire组件抛出异常The type initializer for 'spr857' threw an exception

方案2,将Spire.XLS.dll和Spire.Pdf.dll同时作为Reference导入到项目里。

使用Spire组件抛出异常The type initializer for 'spr857' threw an exception

转换出来的结果真是完美极了:

原始的Excel:

使用Spire组件抛出异常The type initializer for 'spr857' threw an exception

转换出来的PDF:

使用Spire组件抛出异常The type initializer for 'spr857' threw an exception

在使用Spire.Xls的同时,我也在尝试使用免费的Spire.Doc去做Word文档到PDF文档转换时,遇到了相同的问题,上面的两个方案也适用在Spire.Doc组件中。