我有一个从流创建的有效SpreadsheetDocument对象。我可以操纵它(f.e。添加新行)。在我的更改后,我需要将此更改的文档保存在SQL Server中作为varbinary,然后读取它以便SQL Server进一步操作。
你能提供一些如何实现它的例子吗?
我知道如何从SQL Server中放入/读取数据。我正在寻找的是以某种方式将SpreadsheetDocument转换为字节数组并从SQL Server的字节数组创建回SpreadsheetDocument。
我正在使用Open XML SDK 2.0
非常感谢,
亚历山大
答案 0 :(得分:0)
不完全相同但我需要将Excel模板加载到内存中,修改它并使用IIS通过HTTP发送它。我是通过将数据加载到内存流中然后进行修改来实现的(这似乎是微软在这里推荐的方式:
http://msdn.microsoft.com/en-us/library/ee945362%28v=office.11%29.aspx
这可能会对您有所帮助:
MemoryStream ms = new MemoryStream();
byte [] byteArray = System.IO.File.ReadAllBytes("document.xslm");
ms.Write(byteArray, 0, byteArray.Length);
ms.Position = 0;
using (SpreadsheetDocument doc = SpreadsheetDocument.Open(ms, true))
{
<Do stuff>
}
return File(ms.ToArray(), "application/vnd.ms-excel.sheet.macroEnabled.12", "output.xlsm");
显然最后一行是我需要做的,你需要将流保存到数据库。