如何在 C# 中正确设置标题范围使用 EPPlus?

问题描述

    using System.IO;   
    using System.Collections.Generic;
    using OfficeOpenXml;
    


namespace Project
{
public class CreateExcel
{

    public static void GenerateExcel(List<string> headerList,List<string> dataList,FileInfo filePath)
    {
        using (ExcelPackage excel = new ExcelPackage())
        {
            excel.Workbook.Worksheets.Add("Worksheet1");

            // Determine the header range (e.g. A1:D1)
            string headerRange = "A1:" + Char.ConvertFromUtf32(headerList.Count + 64) + "1";

            // Target a worksheet
            var worksheet = excel.Workbook.Worksheets["Worksheet1"];

            // Popular header row data
            worksheet.Cells[headerRange].LoadFromCollection(headerList);

            worksheet.Cells[2,1].LoadFromCollection(dataList,false);

            excel.SaveAs(filePath);
        }
    }
}

我想用这个函数创建 .xlsx 文件,但是 headerRange 得到“A1:^1”值(当我使用我的 headerList 时,它有 30 个元素),当然我得到这个错误:System.Exception : '无效的地址格式 ^1' . 如何正确设置headerRange?

解决方法

改用LoadFromArrays

var values=new List<object[]> {
    headerList.ToArray(),dataList.ToArray()
}; 
worksheet.Cells["A1"].LoadFromArrays(values);

LoadFromCollection 使用反射从强类型集合加载数据,为每个属性创建不同的列

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...