jwd*_*aan 16 c# excel openxml-sdk
我有一个Excel 2007电子表格,我用OpenXML SDK 2编辑.我删除了一些行等.我想知道如何将Spreadsheetdocument保存到另一个文件名.
amu*_*rra 14
据我所知,没有内置的方法来更改文件名,但由于编辑文件的一种方法是使用流,因此在写出流内容时可以轻松地给出所需文件的名称:
byte[] byteArray = File.ReadAllBytes("C:\\temp\\oldName.xltx");
using (MemoryStream stream = new MemoryStream())
{
stream.Write(byteArray, 0, (int)byteArray.Length);
using (SpreadsheetDocument spreadsheetDoc = SpreadsheetDocument.Open(stream, true))
{
// Do work here
}
File.WriteAllBytes("C:\\temp\\newName.xlsx", stream.ToArray());
}
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以更改名称,例如在ASP.NET MVC Web应用程序中将文件返回给用户时,但这取决于您要执行的操作.
小智 9
看看这个基于OpenXML的ClosedXML库; 它简化了大量的文档操作,并为您提供了SaveAs方法.这是你可以做的一个例子.
var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
workbook.SaveAs("HelloWorld.xlsx");
Run Code Online (Sandbox Code Playgroud)
我强烈推荐 ClosedXML - 第一次使用它,最初我使用标准的 Open XML 2.0 SDK 在几个小时内完成了“从 excel 导入”功能 - 我在不到 15 分钟的时间内重写了它,而且我已经使用此工具在 10 分钟内完成导出到 excel。