我正在实现一个解决方案,用户可以将.XLS、.XLSX和.CSV文件加载到ASP MVC应用程序中。我使用Gembox Spreadsheet插件来读取文件,目前它运行良好,但用户需要加载具有特定模式的.XML文件。我不知道这个文件应该对应哪个Excel版本,但我在XML文件中找到了以下内容,它说明这是Excel的一个模式:
这表明它是一个旧的.XLS文档模式,我在快速谷歌搜索后得出了相同的结论,但我不知道这个文件属于哪个协议或标准/库。有人可以解释一下如何读取它吗?如果我使用Microsoft Excel打开此文件,则可以读取,但我不知道如何操作。
然而,该文件未被识别,当我尝试使用Open SDK Productivity Tool打开它时,它显示文件已损坏。
<?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打开它时,它显示文件已损坏。
但我可以在Microsoft Excel中打开此文件而没有任何问题
到目前为止,我发现的所有库都是用于生成这种类型的文件,而不是读取并将其输出到不同的格式。也许我正在进行错误的研究。