如何将使用封闭XML创建的Excel文件转换为字节格式

2024-01-31

您好,我正在使用 ClosedxML DLL 导出到 Excel,我有如下所示的静态方法

    public static void WriteToExcel(string fileName, List<CP> pages)
    {
        var wb = new XLWorkbook();
        byte[] file;


        var ws = wb.Worksheets.Add("CPs");
        WriteCostHeader(ws);

        ////write all the header columns
        //for (int i = 0; i < pages.Count; i++)
        int iRow = 2;
        foreach(var page in pages)
        {
            WriteCostPage(ws, page, iRow++);                

            WriteCostItemHead(ws, iRow++);

            foreach(var item in page.Items)
            {
                WriteCostItem(ws, item, iRow++);
            }
            iRow++;
        }

       wb.SaveAs(fileName);           
    }

我用下面这样的方法调用上面的函数

public  static List<CP> Init()
{

    //binding items to to list
}

static void Main(string[] args)
{
      byte[] file;
      file = ExcelProvider.WriteToExcel("D:\\Temp\\Test1.xls", Init());
      //Console.WriteLine("done");
      //Console.ReadLine();
 }

 public byte[] CreatePackage()
 {
     string fileName = string.Format("{0}.xlsx", "Generated");
     byte[] excelFile;         
     // getting error here cannot convert void to byte[]  
     excelFile =  ExcelProvider.WriteToExcel(fileName, Init());            
 }

但我需要以字节为单位获取该结果 Excel 表,我需要将其存储在内存流中,稍后我可以将其用于进一步的目的..

但我不知道如何获得创建的字节格式的Excel文件......

任何人都可以对此提出任何想法或解决方案吗... 提前谢谢了 ...


关闭的 XML 工作簿保存到流中。您可以使用内存流。然后打电话MemoryStream.ToArray()获取它的字节。所以...

var wb = new XLWorkbook();
//...
var workbookBytes = new byte[0];
using (var ms = new MemoryStream())
{
    wb.SaveAs(ms);
    workbookBytes = ms.ToArray();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将使用封闭XML创建的Excel文件转换为字节格式 的相关文章

随机推荐