c#如何将Excel文件生成xml文件
时间: 2023-08-08 17:05:30 浏览: 144
在 C# 中,你可以使用 `Microsoft.Office.Interop.Excel` 程序集中的 `Workbook` 和 `Worksheet` 类来读取 Excel 文件中的数据,然后将其转换为 XML 格式并保存为文件。
以下是一个简单的示例代码,演示如何将 Excel 文件转换为 XML 文件:
```csharp
using System.Xml;
using Microsoft.Office.Interop.Excel;
// 创建一个新的Excel应用程序实例
Application excel = new Application();
Workbook workbook = excel.Workbooks.Open(@"C:\path\to\workbook.xlsx");
Worksheet sheet = workbook.Sheets[1];
// 创建一个新的XmlDocument对象
XmlDocument xmlDocument = new XmlDocument();
// 创建根元素
XmlElement rootElement = xmlDocument.CreateElement("Workbook");
xmlDocument.AppendChild(rootElement);
// 逐行读取Excel数据并将其转换为Xml元素
for (int i = 1; i <= sheet.UsedRange.Rows.Count; i++)
{
XmlElement rowElement = xmlDocument.CreateElement("Row");
rootElement.AppendChild(rowElement);
for (int j = 1; j <= sheet.UsedRange.Columns.Count; j++)
{
object cellValue = sheet.Cells[i, j].Value2;
XmlElement cellElement = xmlDocument.CreateElement("Cell");
cellElement.InnerText = cellValue.ToString();
rowElement.AppendChild(cellElement);
}
}
// 保存Xml文件
xmlDocument.Save(@"C:\path\to\output.xml");
// 关闭Excel应用程序和工作簿
workbook.Close(false);
excel.Quit();
```
在上面的示例代码中,我们首先使用 `Microsoft.Office.Interop.Excel` 程序集创建了一个新的 Excel 应用程序实例,并打开了一个工作簿。然后,我们选择了工作簿中的第一个工作表,并使用 `UsedRange` 属性获取其使用的范围。
接下来,我们创建了一个新的 `XmlDocument` 对象,并为其添加了一个根元素。然后,我们使用一个循环逐行读取 Excel 文件中的数据,并将其转换为 XML 元素。最后,我们保存了 XML 文件,并关闭了 Excel 应用程序和工作簿。
请注意,上述示例使用了 `Value2` 属性来获取单元格的值。这是因为 `Value2` 属性返回一个未经格式化的值,可以更快地读取和处理数据。如果需要,你也可以使用 `Value` 属性来获取单元格的格式化值。
阅读全文