我已经查看了该论坛上有关类似问题的大多数主题,但尚未找到我正在寻找的内容。
我正在尝试编写一个管道组件BizTalk 2013 R2
使用 C# 简单地转换传入的Excel 2010
.xlsx
文件到它的裸/基本 XML 表示形式。
我不想针对它运行任何模板或 XSLT 转换它或类似的东西。我只是想按原样返回所述电子表格的底层 XML 表示形式。
看起来这应该是一个非常简单的任务,但我根本不知道如何去做。
我发现的一切都需要与DataTables
并循环遍历行和单元格(通过OpenXML
)以输出更易于人类阅读的特定 XML 表示形式,但这不是我想要的。
我想要该电子表格的实际 Microsoft XML 表示形式。
任何帮助将不胜感激。
好的,无需解压文件就可以解决这个问题。
如果您使用 SAX 方法将工作表加载到OpenXmlReader
在这里找到:
https://msdn.microsoft.com/en-us/library/office/gg575571(v=office.15).aspx https://msdn.microsoft.com/en-us/library/office/gg575571(v=office.15).aspx
然后您可以使用阅读器来获取OuterXml
像这样:
using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(filepath, false))
{
WorkbookPart wbPart = spreadSheetDocument.WorkbookPart;
OpenXmlReader reader = OpenXmlReader.Create(wbPart);
while (reader.Read())
{
if (reader.ElementType == typeof(Sheet))
{
Sheet sheet = (Sheet)reader.LoadCurrentElement();
WorksheetPart wsPart = (WorksheetPart)(wbPart.GetPartById(sheet.Id));
OpenXmlReader wsReader = OpenXmlReader.Create(wsPart);
while (wsReader.Read())
{
if(wsReader.ElementType == typeof(Worksheet))
{
Worksheet wsPartXml = (Worksheet)wsReader.LoadCurrentElement();
Console.WriteLine(wsPartXml.OuterXml + "\n");
}
}
}
}
Console.ReadKey();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)