使用EPPLUS库的Table.ShowFilter问题。
在工作表中创建了新的ExcelTable,但无法应用Table.ShowFilter = false。
过滤器仍在表中。
TableStyle和StyleName可以正常工作。
ExcelTable et = (ExcelTable)Table;
int firstRow = newRow;
int lastRow;
if (DataStructure.Data != null)
lastRow = newRow + DataStructure.Data.Count();
else
lastRow = newRow + 1;
int firstColumn = OriginalAddress.StartColumn;
int lastColumn = OriginalAddress.EndColumn;
ExcelRange rg = ws.Cells[firstRow, firstColumn, lastRow, lastColumn];
Guid guid = Guid.NewGuid();
string str_guid = guid.ToString();
string tableName = et.Name + "_" + str_guid;
ExcelTable tab = wsTarget.Tables.Add(rg, tableName);
// tab.ShowHeader = et.ShowHeader;
// tab.TableStyle = et.TableStyle;
// tab.StyleName = et.StyleName;
tab.ShowFilter = false;
Right table is desired result.
请帮忙修复!
答案 0 :(得分:0)
这是你的意思吗?
MyStruct construct_struct(int a, int b, int c, ...){
}
MyStruct::MyStruct(int a, int b, int c, ...){
*this = construct_struct(a,b,c,...);
}
这个很小的例子在这里起作用:
tab.ShowHeader = false;
答案 1 :(得分:0)
可能是错误。 将ws2.DeleteColumn(1,1)添加到代码中,将过滤器添加到表中,即使使用tab.ShowFilter = false。
解决方法:将tab.ShowFilter = false放在文件保存之前。
using (ExcelPackage xls = new ExcelPackage())
{
ExcelWorksheet ws2 = xls.Workbook.Worksheets.Add("f1");
OfficeOpenXml.Table.ExcelTable tab = ws2.Tables.Add(new ExcelAddressBase("d3:g8"), "table");
//tab.TableStyle = et.TableStyle;
//tab.StyleName = et.StyleName;
ws2.DeleteColumn(1, 1);
tab.ShowFilter = false;
FileInfo f = new FileInfo(@"test.xlsx");
xls.SaveAs(f);
}