【发布时间】:2014-08-20 06:52:11
【问题描述】:
您好,我使用以下方法来应用自动过滤器:
public static void ApplyAutofilter(string fileName, string sheetName, string reference)
{
using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, true))
{
IEnumerable<Sheet> sheets = document.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>().Where(s => s.Name == sheetName);
var arrSheets = sheets as Sheet[] ?? sheets.ToArray();
string relationshipId = arrSheets.First().Id.Value;
var worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(relationshipId);
var autoFilter = new AutoFilter() { Reference = reference };
worksheetPart.Worksheet.Append(autoFilter);
worksheetPart.Worksheet.Save();
}
}
我有这个简单的 Excel 表格:
问题是当我将此方法称为:
ApplyAutofilter(@".\Test.xlsx", "Foo", "A0:A200");
或
ApplyAutofilter(@".\Test.xlsx", "Foo", "A1:A200");
过滤器未应用,当我尝试打开文件时文件已损坏:
问题:知道如何将此自动筛选器应用到 Excel 工作表而不损坏它吗?
【问题讨论】:
标签: c# .net excel openxml openxml-sdk