Есть ли способ просто прочитать файл excel с помощью MemoryStream
в С#? В настоящее время я использую родную библиотеку Microsoft Microsoft.Office.Interop.Excel
. Есть ли способ прочитать файл excel с помощью этой библиотеки?
Открытие файла Excel
using Microsoft.Office.Interop.Excel; // using this namespace
public ExcelHelper(string path)
{
_xlApp = new Application();
_xlWorkbook = _xlApp.Workbooks.Open(path);
}
Помощник
public static MemoryStream DownloadFile(FtpHandler handler, FtpDirectoryOrFileDetail detail)
{
var fileByte = handler
.Download
.FileByPath(detail.FilePart.Filename, detail.SubFolderPath + "/", false)?.Data;
if (fileByte is null) return stream;
using (var fileStream = new MemoryStream(fileByte))
return fileStream;
return null;
}
Проблема в том, что расширение Open
использует только параметр string
и не имеет опции для MemoryStream
. Кто-нибудь сталкивается с этой проблемой и может это исправить? Я очень открыт для любого предложения.
1 ответ
Below is tested solution which writing Excel workbook to memory stream and returning _objectstream which can be used to write to blob and anywhere else.
using (var fs = new FileStream(fileName, FileMode.Append, FileAccess.Write))
{
IWorkbook workbook = new XSSFWorkbook();
logic goes here......
workbook.Write(obj_stream);
using (MemoryStream tempStream = new MemoryStream())
{
workbook.Write(tempStream);
var byteArray = tempStream.ToArray();
stream = new MemoryStream(byteArray);
obj_stream = stream;
}
}
return obj_stream
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
WorkBooks.Open()
.