使用NPOI时出现难以理解的错误

时间:2015-10-27 10:21:53

标签: c# .net xml npoi

我试图在C#中使用NPOI编辑excel文件,但它给我一个我不明白的错误,我无法在互联网上找到任何文档为了这。 以下是相关代码:

enter image description here

代码是一张质量很差的图片,因为我不会发布我正确缩进的代码,而且我已经厌倦了。无法使它工作,所以我拍了一个截图。

我在第8行总是有一个丑陋的,无休止的错误,workBook.Write指令:

  

InvalidOperationException:输入NPOI.OpenXmlFormats.ItemChoiceType是   缺少枚举值'空' for element' empty from namespace   ' http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes&#39 ;.   System.Xml.Serialization.XmlReflectionImporter.ImportElementInfo   (System.Type cls,System.String defaultName,System.String   defaultNamespace,System.Type defaultType,   System.Xml.Serialization.XmlTypeMapMemberElement成员,   System.Xml.Serialization.XmlAttributes atts)   System.Xml.Serialization.XmlReflectionImporter.CreateMapMember   (System.Type declaringType,   System.Xml.Serialization.XmlReflectionMember rmember,System.String   DefaultNamespace的)   System.Xml.Serialization.XmlReflectionImporter.ImportClassMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   defaultNamespace)Rethrow as InvalidOperationException:有一个   错误反映字段'项目'。   System.Xml.Serialization.XmlReflectionImporter.ImportClassMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   DefaultNamespace的)   System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   defaultNamespace)Rethrow as InvalidOperationException:有一个   错误反映类型' NPOI.OpenXmlFormats.CT_Property'。   System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   DefaultNamespace的)   System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping   (System.Type类型,System.Xml.Serialization.XmlRootAttribute root,   System.String defaultNamespace)   System.Xml.Serialization.XmlReflectionImporter.ImportElementInfo   (System.Type cls,System.String defaultName,System.String   defaultNamespace,System.Type defaultType,   System.Xml.Serialization.XmlTypeMapMemberElement成员,   System.Xml.Serialization.XmlAttributes atts)   System.Xml.Serialization.XmlReflectionImporter.CreateMapMember   (System.Type declaringType,   System.Xml.Serialization.XmlReflectionMember rmember,System.String   DefaultNamespace的)   System.Xml.Serialization.XmlReflectionImporter.ImportClassMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   defaultNamespace)Rethrow as InvalidOperationException:有一个   错误反映了字段'属性'。   System.Xml.Serialization.XmlReflectionImporter.ImportClassMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   DefaultNamespace的)   System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   defaultNamespace)Rethrow as InvalidOperationException:有一个   错误反映类型' NPOI.OpenXmlFormats.CT_CustomProperties'。   System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping   (System.Xml.Serialization.TypeData typeData,   System.Xml.Serialization.XmlRootAttribute root,System.String   DefaultNamespace的)   System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping   (System.Type类型,System.Xml.Serialization.XmlRootAttribute root,   System.String defaultNamespace)   System.Xml.Serialization.XmlSerializer..ctor(System.Type类型,   System.Xml.Serialization.XmlAttributeOverrides覆盖,   System.Type [] extraTypes,System.Xml.Serialization.XmlRootAttribute   root,System.String defaultNamespace)   System.Xml.Serialization.XmlSerializer..ctor(System.Type类型)   NPOI.OpenXmlFormats.CustomPropertiesDocument..cctor()Rethrow as   TypeInitializationException:类型抛出异常   NPOI.OpenXmlFormats.CustomPropertiesDocument的初始化程序   NPOI.POIXMLProperties..cctor()Rethrow as   TypeInitializationException:类型抛出异常   NPOI.POIXMLProperties的初始化程序   NPOI.POIXMLDocument.GetProperties()将Rethrow改为POIXMLException   NPOI.POIXMLDocument.GetProperties()NPOI.POIXMLDocument.Write   (System.IO.Stream stream)Statistiques.Save()(at   Assets / Scripts_Exp / Statistiques.cs:26)TutorialManager.Update()(at   资产/ Scripts_Exp / TutorialManager.cs:78)

当然,给定的URL不再存在。 如果我在Console.log中尝试文件中的给定单元格,它会给我正确的值,因此读取文件有效但不能写入。

有没有人经历过这个? 谢谢你的帮助。 :)

1 个答案:

答案 0 :(得分:0)

尝试写入不同的流 - 伪代码:

var outputStream = new FileStream(differentPathThanInput) workbook.Write(OutputStream中)