Как открыть созданную WorkBook с помощью C #, используя память, не сохраняя ее? - PullRequest
0 голосов
/ 02 мая 2019

Я создаю файл Excel, используя ClosedXML, и я хотел бы открыть созданную книгу, не сохраняя ее на сервере. Так есть ли шанс открыть созданную ClosedXML рабочую книгу, нигде не сохранив ее? мое предположение будет использовать память, но как ты это делаешь?

wb.SaveAs(filePath);      
System.Diagnostics.Process.Start(filePath);

Сейчас я открываю его, сохраняя, но поскольку мало кто может использовать программу и одновременно пытаться получить файл Excel, это может привести к ошибке. Так есть ли способ открыть файл WorkBook, созданный с помощью ClosedXML, без его сохранения?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Если ваша основная проблема заключается в том, что «мало кто может использовать программу и попытаться получить файл Excel одновременно, это приведет к ошибке», тогда вы можете просто генерировать уникальное имя файла каждый раз (например, с использованием идентификаторов GUID) .

ClosedXML поддерживает сохранение файла в потоке памяти, но Excel не примет это как действительный источник данных.

0 голосов
/ 02 мая 2019

Вы можете сохранить рабочую книгу в MemoryStream.

wb.SaveAs(new MemoryStream()); 

Но тогда вам нужна программа для просмотра файла (байт)

Чтобы не получить исключение, когда другой пользователь пытается получить доступ к файлу, необходимо написать метод для ожидания выпуска файла.

Предложение: https://www.codeproject.com/Tips/164428/C-FileStream-Lock-How-to-wait-for-a-file-to-get-re

...