要将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方法来释放资源

C# stream转成工作簿

原文地址: https://www.cveoy.top/t/topic/itY0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录