我正在使用 DocumentFormat.OpenXml.SpreadsheetDocument 并打开 Excel 文档的模板,写入并保存它。
它就像普通文件流中的魅力一样工作:
using (var documentStream = System.IO.File.Open("--somePath--", FileMode.Open, FileAccess.ReadWrite))
{
using (var document = SpreadsheetDocument.Open(documentStream, true))
{
// do something
}
}
注意SpreadsheetDocument.Open
现在,我正在将此应用程序重写为 Azure,并使用 Azure 存储及其“WindowsAzure.Storage”包中的 .NET 文件库。
它就像一个魅力,直到我想在 Azure 中填充相同的 excel 文件。
using (var documentStream = _GetRootDirectoryOfAccount().GetFileReference("--someRelativePath--").OpenWrite(null))
{
using (var document = SpreadsheetDocument.Open(documentStream, true))
{
// do something
}
}
第一部分“ _GetRootDirectoryOfAccount().GetFileReference ”工作 100%,然后OpenWrite(null)真正打开一个流。
但是,当该流被推向电子表格时:
SpreadsheetDocument.Open(documentStream, true)
它打破了:
System.IO.IOException:“无法打开包,因为 FileMode 或 FileAccess 值对流无效。”
这是因为在 Stream 上没有设置设置:
System.IO.File.Open("--somePath--", FileMode.Open, FileAccess.ReadWrite )
有谁知道如何解决这个问题?还是解决方案?
请 :)