gpt4 book ai didi

excel - 打开 XML SDK - 保存模板文件(.xltx 到 .xlsx)

转载 作者:行者123 更新时间:2023-12-02 07:32:59 24 4
gpt4 key购买 nike

我有以下代码来打开 Excel 模板文件并将其另存为 .xlsx 文件,当我尝试打开新文件时,出现以下错误。请帮忙解决这个问题。

Excel 无法打开文件“sa123.xlsx”,因为文件格式或扩展名无效。验证文件未损坏并且文件扩展名与文件格式匹配。

        string templateName = "C:\\temp\\sa123.xltx";
byte[] docAsArray = File.ReadAllBytes(templateName);
using (MemoryStream stream = new MemoryStream())
{
stream.Write(docAsArray, 0, docAsArray.Length); // THIS performs doc copy
File.WriteAllBytes("C:\\temp\\sa123.xlsx", stream.ToArray());
}

最佳答案

为此,您需要使用Open XML SDK 2.0 。下面是我尝试时对我有用的一段代码:

byte[] byteArray = File.ReadAllBytes("C:\\temp\\sa123.xltx");
using (MemoryStream stream = new MemoryStream())
{
stream.Write(byteArray, 0, (int)byteArray.Length);
using (SpreadsheetDocument spreadsheetDoc = SpreadsheetDocument.Open(stream, true))
{
// Change from template type to workbook type
spreadsheetDoc.ChangeDocumentType(SpreadsheetDocumentType.Workbook);
}
File.WriteAllBytes("C:\\temp\\sa123.xlsx", stream.ToArray());
}

此代码的作用是获取您的模板文件并将其打开到 SpreadsheetDocument目的。该对象的类型是 Template,但由于您希望将其作为 Workbook,因此您可以调用 ChangeDocumentType 方法将其从 模板工作簿。这将起作用,因为 .xltx 和 .xlsx 文件之间的底层 XML 是相同的,并且正是导致问题的类型。

关于excel - 打开 XML SDK - 保存模板文件(.xltx 到 .xlsx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3831525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com