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);
使用 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);