0

Microsoft Excel を使用して直接開くことができるように、XML ファイルをフォーマットしようとしています。

私が抱えている問題は、デフォルトの名前空間とエイリアス 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");

これを回避する方法を知っている人はいますか?

4

1 に答える 1

0

Open XML SDKMicrosoft が提供するを使用することをお勧めします。ここから詳細情報を入手してください。

http://msdn.microsoft.com/en-us/library/office/hh180830.aspx

http://blogs.msdn.com/b/chrisquon/archive/2009/07/22/creating-an-excel-spreadsheet-from-scratch-using-openxml.aspx

于 2012-08-22T14:44:31.557 に答える