首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将byte[]从xls转换为xlsx文件并保存

将byte[]从xls转换为xlsx文件并保存
EN

Stack Overflow用户
提问于 2019-05-14 22:22:33
回答 2查看 2.6K关注 0票数 0

我正在尝试将我从其他地方的XLS文件中获得的byte[]转换为新的XLSX文件,然后保存它。我正在使用免费的Spire.XML,但是我不知道怎么做。

代码语言:javascript
运行
复制
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[]。

如果我可以将我的byte[]转换为XLS文件并保存它,那么它也可以工作,然后我可以使用其他类似问题的答案。

代码语言:javascript
运行
复制
Workbook workbook = new Workbook();
workbook.LoadFromFile("Input.xls");
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013);
EN

回答 2

Stack Overflow用户

发布于 2019-05-14 22:34:13

这不是战争,因为两种文件类型存储的数据完全不同。xls文件中的数据以专有的二进制格式存储,而xmls文件数据存储在Open XML中。

票数 0
EN

Stack Overflow用户

发布于 2019-05-14 23:03:59

我这样做了,将byte[]保存到XLS文件中,读取它,然后再次将其保存到XLSX文件中。

代码语言:javascript
运行
复制
public byte[] ConvierteAXLSX(string cuerpo)
        {
            File.WriteAllBytes(AppDomain.CurrentDomain.BaseDirectory + "viejo.xls", Convert.FromBase64String(cuerpo));
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(AppDomain.CurrentDomain.BaseDirectory + "viejo.xls");
            workbook.SaveToFile(AppDomain.CurrentDomain.BaseDirectory + "nuevo.xlsx", ExcelVersion.Version2013);
            byte[] fileContent = File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "nuevo.xlsx");
            File.Delete(AppDomain.CurrentDomain.BaseDirectory + "viejo.xls");
            File.Delete(AppDomain.CurrentDomain.BaseDirectory + "nuevo.xlsx");
            return fileContent;
        }

谢谢你的帮忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56132689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档