c# 如何使用 EPPlus 创建一个 Excel 范围而不是 table

c# How can I use EPPlus to create an Excel range instead of a table

使用 C#,我尝试获取一个 csv 文件并使用 EPPlus 库从中创建一个 Excel 文件。我能做到。创建 Excel 文件后,我将其传递给在 Excel 中打开它的用户。当他打开它时,文件以 table 形式打开,而不是一个范围。在 Excel 中,可以转到 Table Tools/Design,然后单击“转换为范围”。用户要求我创建 Excel 文件,这样他就不必每次都经过转换步骤。我无法找到一种方法来做到这一点。我尝试为 LoadFromText 使用不同的参数但没有成功。这是我的代码:

using OfficeOpenXml;
using OfficeOpenXml.Table;
.
.
.
FileInfo txtFile = new FileInfo(textFileName);
FileInfo xlsxFile;

using (ExcelPackage package = new ExcelPackage())
{
    var XLformat = new ExcelTextFormat
    {
        Delimiter = OutputDelimiter[0],                 
        TextQualifier = textQualifier,                  
        SkipLinesBeginning = 0,                         
        Culture = CultureInfo.GetCultureInfo("en-US"),  
        Encoding = Encoding.UTF8,                       
        SkipLinesEnd = 1                                
    };

    var sheet = package.Workbook.Worksheets.Add(sheetName);

    sheet.Cells["A1"].LoadFromText(txtFile, XLformat, TableStyles.None, true);

    sheet.Tables[0].ShowFilter = false;

    package.SaveAs(xlsxFile);
}

替换

sheet.Tables[0].ShowFilter = false;

sheet.Tables.Delete(0);

这样你就可以删除 table 但保持数据在范围内。

编辑:

有一个更简单的方法,根本不创建 table,只需使用正确的重载:

sheet.Cells["A1"].LoadFromText(txtFile, XLformat);