我正在尝试使用ClosedXML库和以下代码在现有excel文件(xlsx)上添加标题行:
public void HandlePrintTitleRows(IList<int> sheetIndex)
{
using (_workbook = new XLWorkbook(_filePath))
{
foreach (var i in sheetIndex)
{
IXLWorksheet workSheet = _workbook.Worksheet(i);
workSheet.PageSetup.SetRowsToRepeatAtTop(1, 5);
}
_workbook.SaveAs(_filePath);
}
}
文件路径来自 SaveFileDialog 对话框,它打开看似正确为 XLWorkbook 。
我从_workbook.SaveAs
方法收到此异常消息:
属性&#39; xfId&#39;应该具有独特的价值。
它的当前价值&#39; 10&#39; 与他人重复。 in / x:styleSheet [1] / x:cellStyles [1] / x:cellStyle [21]
属性&#39; xfId&#39; 应该具有独特的价值。
它的当前价值&#39; 12&#39;与...重复 其他。 in / x:styleSheet [1] / x:cellStyles [1] / x:cellStyle [24]
属性&#39; xfId&#39; 应具有独特的价值。
其当前价值&#39; 50&#39;与...重复 其他。 in / x:styleSheet [1] / x:cellStyles [1] / x:cellStyle [55
Attribute&#39; xfId&#39; 应具有独特的价值。
其当前价值&#39; 50&#39;与...重复 其他。 in / x:styleSheet [1] / x:cellStyles [1] / x:cellStyle [59]&#34;
StackTrace:
在ClosedXML.Excel.XLWorkbook.Validate(SpreadsheetDocument 包)in C:\ Git \ ClosedXML \ ClosedXML \ Excel \ XLWorkbook_Save.cs:第90行
在ClosedXML.Excel.XLWorkbook.CreatePackage(String filePath, SpreadsheetDocumentType spreadsheetDocumentType,B ...
我不知道如何处理这个问题,所有提示将不胜感激! excel文件以前是由Telerik.Windows.Documents.Spreadsheet.Model.Workbook
类创建的,并且通常使用excel应用程序打开。
答案 0 :(得分:3)
使用OpenXML SDK Validator打开原始文件(未经ClosedXML
修改)以查看它是否为有效文件。如果原始文件中出现验证错误,请对其进行修复,或者您可以使用ClosedXML
重载禁用SaveAs(_filePath, false)
中的验证,风险自负。