在C#中将Excel XML 2003工作表文件转换为.XLSX文件

3
我正在实现一个解决方案,用户可以将.XLS、.XLSX和.CSV文件加载到ASP MVC应用程序中。我使用Gembox Spreadsheet插件来读取文件,目前它运行良好,但用户需要加载具有特定模式的.XML文件。我不知道这个文件应该对应哪个Excel版本,但我在XML文件中找到了以下内容,它说明这是Excel的一个模式:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">

这表明它是一个旧的.XLS文档模式,我在快速谷歌搜索后得出了相同的结论,但我不知道这个文件属于哪个协议或标准/库。有人可以解释一下如何读取它吗?如果我使用Microsoft Excel打开此文件,则可以读取,但我不知道如何操作。

编辑

根据Sunil的答案,我进行了更多的研究,发现这是一个Microsoft Excel 2003 XML文件,因此我尝试使用Microsoft的Open XML SDK来读取此文件,我找到了这段代码:

public static void ConvertExcelXmltoXlsx(Stream fileStream, string filePath, string fileName)
{
    string excelFileName = Path.GetFileNameWithoutExtension(fileName) + ".xslx";
    OpenXmlReader reader = OpenXmlReader.Create(fileStream);
    while (reader.Read())
    {
        if (reader.ElementType == typeof(CellValue))
        {
            reader.GetText();
        }
    }
}

然而,该文件未被识别,当我尝试使用Open SDK Productivity Tool打开它时,它显示文件已损坏。

Error Open XML Sdk Productivity Tool

但我可以在Microsoft Excel中打开此文件而没有任何问题

Excel opens file ok

到目前为止,我发现的所有库都是用于生成这种类型的文件,而不是读取并将其输出到不同的格式。也许我正在进行错误的研究。
1个回答

2

我曾经处理过类似的文档。这些文件被称为Excel XML文件。

在Google上搜索Carlos Ag Excel Xml Writer。同时搜索“Excel XML reader”,你会得到很多代码示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接