OpenXML PowerTools:是否可以将 Excel 电子表格写入 .Net MemoryStream?

大雾天

我正在使用 PowerTools 以编程方式创建 Excel 电子表格。

我使用 Nuget 在我的 C#/ASP.Net Core 项目中安装了 PowerTools 4.5.3.2。该项目还使用 DocumentFormat.OpenXml v2.9.1。

我可以生成电子表格。

但 ...

我想将完成的电子表格作为 .Net MemoryStream 传回给用户。

我仔细研究了https://github.com/OfficeDev/Open-Xml-PowerTools上的 PowerTools 文档和示例程序

但是在我的一生中,我还没有看到任何让 PowerTools 将生成的数据作为 MemoryStream 提供给我的方法。或者,就此而言,任何让 PowerTools 使用我传递给它的 MemoryStream 的方法。

问:有什么建议吗?

笔记

我想做的就是:

  1. 我的 ASP.Net Web 控制器调用一个从头开始生成 .xlsx 电子表格的函数。

  2. 该函数使用 OpenXML PowerTools(因为这似乎是在 .xlsx 中包含数据透视表的最直接方式)

  3. 一旦函数返回,控制器需要将 .xlsx 作为 Asp.Net Core FileStreamResult 对象返回给 Web 客户端。

换句话说,我想要做的就是从 2(工作)到 3(这就是我卡住的地方)。我似乎无法将成功创建的电子表格“转换”为与 MVC FileStreamResult 兼容的对象,以便控制器传递回调用者。

帮助!

大雾天

不,OpenXml PowerTools 似乎不会让您写出除实际磁盘文件之外的任何内容。

所以我使用了一个临时文件,然后将其转换为 byte[] 数组以传回给调用者:

using (OpenXmlMemoryStreamDocument streamDoc = OpenXmlMemoryStreamDocument.CreateSpreadsheetDocument())
{
    doc = streamDoc.GetSpreadsheetDocument();
    ms = new MemorySpreadsheet();
    ...
    string tmpFile = System.IO.Path.GetTempFileName();
    streamDoc.GetModifiedSmlDocument().SaveAs(tmpFile);
    byte[] fileBytes = System.IO.File.ReadAllBytes(tmpFile);
    return fileBytes;

PS:我从来没有解决过这个问题:OpenXML SpreadsheetDocument SaveAs() 给出文件使用错误

我最终放弃了 PowerTools,回到了全 OpenXml 解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将OpenXML创建的Excel电子表格导出到客户端

如何使用.net将复选框添加到Excel电子表格?

如何将Python数组写入Excel电子表格

尝试将数据从网站写入 Excel 电子表格

如何将 Python 数组写入单个 Excel 电子表格单元格

写入Excel电子表格

Excel将电子表格转换为html

将变量导出到Excel电子表格

将 Excel 转换为 Google 电子表格

将Excel电子表格转换为JSON

使用EPPlus生成电子表格时是否可以忽略Excel警告?

如何将列添加到存储为 VB.NET XML Literal 的 MS Office Excel 电子表格

将Excel电子表格上传到Google表格

如何将HTML表格转换为Excel电子表格

PowerShell:如何将表格添加到 Excel 电子表格

从AppScript将数据写入Google电子表格

无法将表单值写入电子表格

是否可以基于Excel 2007中的列将电子表格拆分为多个文件?

我正在尝试将已抓取的数据写入/粘贴到特定的Excel电子表格单元格位置,但是我不确定如何去做

使用MATLAB通过ActiveX协议将字符串值写入Excel电子表格中。发现一个问题

台式计算机更好,可以运行Excel电子表格吗?

您可以根据 Laravel 中的选择导出 Excel 电子表格吗?

使用Powershell循环浏览Excel文件并检查电子表格名称是否存在

SharePoint 是否支持相互链接的 Excel 电子表格?

Python:将数据爬到Excel电子表格中时没有回溯

如何将 Excel 电子表格导入我的数据库?

将R data.frame复制到Excel电子表格

使用df.to_excel将按钮插入电子表格

如何将复杂的词典添加到Excel电子表格?