C# stream转成工作簿
要将C#的Stream对象转换为工作簿(Workbook),可以使用ExcelDataReader库。ExcelDataReader是一个用于读取Excel文件的开源库。
首先,确保已在C#项目中安装了ExcelDataReader和ExcelDataReader.DataSet两个NuGet包。
然后,可以使用以下代码将Stream对象转换为工作簿:
using ExcelDataReader;
using System.Data;
using System.IO;
public static class StreamExtensions
{
public static DataSet ToDataSet(this Stream stream, bool isFirstRowAsColumnNames = false)
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
var dataSet = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = isFirstRowAsColumnNames
}
});
return dataSet;
}
}
public static DataTable ToDataTable(this Stream stream, bool isFirstRowAsColumnNames = false)
{
var dataSet = stream.ToDataSet(isFirstRowAsColumnNames);
if (dataSet.Tables.Count > 0)
{
return dataSet.Tables[0];
}
return null;
}
}
使用示例:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 从文件加载Stream对象
using (var stream = File.Open("path/to/file.xlsx", FileMode.Open, FileAccess.Read))
{
var workbook = stream.ToDataSet(); // 将Stream转换为工作簿
// 在此处进行工作簿的操作,例如读取单元格数据等
// 释放工作簿资源
workbook.Dispose();
}
}
}
注意:在使用完工作簿后,需要调用Dispose方法来释放资源
原文地址: https://www.cveoy.top/t/topic/itY0 著作权归作者所有。请勿转载和采集!