【发布时间】:2019-05-14 23:03:59
【问题描述】:
我正在尝试将从其他地方的 XLS 文件中获得的字节 [] 转换为新的 XLSX 文件并保存。我正在使用 Free Spire.XML,但不知道该怎么做。
public byte[] ConvierteAXLSX(string cuerpo)
{
Workbook wb = new Workbook();
Worksheet sheet = wb.Worksheets[0];
byte[] array = Convert.FromBase64String(cuerpo);
sheet.InsertArray(array, 1, 1, true);
wb.SaveToFile(AppDomain.CurrentDomain.BaseDirectory + "sample.xlsx", ExcelVersion.Version2013);
byte[] fileContent = File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "sample.xlsx");
//File.Delete(AppDomain.CurrentDomain.BaseDirectory + "sample.xlsx");
return fileContent;
}
此代码创建 XLSX 文件,但只是将 byte[] 像数组一样插入到 excel 文件中,而不是转换数据。
编辑:
我的问题与其他问题略有不同。我不能只读取原始文件然后再次保存,因为该文件位于另一台服务器中并且无法访问它。我能做的最好的事情是发送文档正文并将其解析为字节 []。
如果我可以将我的 byte[] 转换为 XLS 文件并保存它,它也可以工作,然后我可以使用其他类似问题的答案。
Workbook workbook = new Workbook();
workbook.LoadFromFile("Input.xls");
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013);
【问题讨论】:
-
从根本上说 .xls 和 .xlsx 是不一样的,你不能只取字节并在它们之间进行转换。
-
How to convert xls file to xlsx file using C#? 的可能重复项(如果您不介意删除中间的
byte[]步骤..) -
您的编辑令人困惑。您无法读取/访问文件,但可以发送/解析正文?除非我误解了什么,否则这听起来很矛盾。
标签: c# excel xls excel-interop