【发布时间】:2012-08-22 14:17:20
【问题描述】:
我正在尝试格式化 XML 文件,以便可以直接使用 Microsoft Excel 打开它。
我遇到的问题是由于默认命名空间和别名 ss: 命名空间是相同的。否则我无法让 excel 接受该文件。
当尝试下面的代码时,我在 WorkSheet 节点上获得了一个额外的 xmlns="" 属性。这使得 Excel 无法打开文件。
XNamespace nsDefault = "urn:schemas-microsoft-com:office:spreadsheet";
XElement workbook = new XElement(nsDefault + "Workbook",
new XAttribute("xmlns", nsDefault),
new XAttribute(XNamespace.Xmlns + "ss", nsDefault));
XElement worksheet = new XElement("Worksheet");
worksheet.SetAttributeValue(nsDefault + "Name", "Shipping");
XElement table = new XElement("Table");
XElement row = new XElement("Row");
XElement cell = new XElement("Cell");
XElement data = new XElement("Data");
data.SetAttributeValue(nsDefault + "Type", "String");
data.Value = "qwerty";
cell.Add(data);
row.Add(cell);
table.Add(row);
worksheet.Add(table);
workbook.Add(worksheet);
workbook.Save(@".\Xml\Test.xml");
有谁知道我该如何解决这个问题?
【问题讨论】:
-
你为什么要发明自己的轮子?您是否看过直接创建 MS-conform-XML 文件的 OpenXML? (openxmldeveloper.org)
-
Excel 2010?还是旧版本?
-
Excel 2010。我要研究一下 openxml,谢谢