首页 > 解决方案 > c# 如何使用 EPPlus 创建 Excel 范围而不是表格

问题描述

使用 C#,我正在尝试获取一个 csv 文件并使用 EPPlus 库从中创建一个 Excel 文件。我能够这样做。创建 Excel 文件后,我将其传递给在 Excel 中打开它的用户。当他打开它时,文件以表格形式打开,而不是范围。在 Excel 中,可以转到表格工具/设计,然后单击转换为范围。用户要求我以这样一种方式创建 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);
}

标签: c#asp.netepplus

解决方案


代替

sheet.Tables[0].ShowFilter = false;

sheet.Tables.Delete(0);

这样您就可以删除表格但将数据保留为范围。

编辑:

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

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

推荐阅读