C# 如何使用EPPlus向单元格范围添加注释

C# 如何使用EPPlus向单元格范围添加注释,c#,.net,excel,epplus,C#,.net,Excel,Epplus,我正在生成一个Excel文件供用户使用。我正在填充值,其中一些会有注释。将这些值添加到一系列单元格中效果很好。在尝试打开Excel文件时,一次向多个单元格添加注释会导致错误。Visual Studio表现得好像一切都会好起来,但当我打开文件时,它会说: 我们发现[filename]中的某些内容有问题。是否希望我们尽量恢复?如果您信任此工作簿的源,请单击“是” 单击“是”,我会收到一条消息,上面说“Excel能够通过修复或删除不可读的内容来打开文件。 删除的记录:来自/xl/comments1.x

我正在生成一个Excel文件供用户使用。我正在填充值,其中一些会有注释。将这些值添加到一系列单元格中效果很好。在尝试打开Excel文件时,一次向多个单元格添加注释会导致错误。Visual Studio表现得好像一切都会好起来,但当我打开文件时,它会说:

我们发现[filename]中的某些内容有问题。是否希望我们尽量恢复?如果您信任此工作簿的源,请单击“是” 单击“是”,我会收到一条消息,上面说“Excel能够通过修复或删除不可读的内容来打开文件。
删除的记录:来自/xl/comments1.xml部分的注释(注释)”

以下是列出修复的日志文件:

-
error272000_02.xml
在文件“C:\Users\aletreb\Downloads\Import\U 20190826\U 7E'sSales(11).xlsx”中检测到错误
-
删除的记录:来自/xl/comments1.xml部分的注释(注释)

因此,当文件打开时,只有范围中的第一个单元格仍然有注释

    var worksheet = excel.Workbook.Worksheets["Sheet1"];
    var customerName = bulkUpload.CustomerId != 0 ? _customerModel.GetCustomerByID(bulkUpload.CustomerId).CustomerName : "No Customer";
    var finalRow = bulkUpload.UnitCount != null && bulkUpload.UnitCount > 0 ? (int)bulkUpload.UnitCount + 1 : 2;

    var headerRow = new List<string> {
        "CustomerID", // A1
        "VIN", // B1
        "Unit Number", // C1
        "Year", // D1
        "Make", // E1
        "Model", // F1
        "Contact Name", // G1
        "Phone Number", // H1
        "Fax Number" // I1
    };

    var customerIdrange = worksheet.SelectedRange[2, 1, finalRow, 1];
    customerIdrange.Value = bulkUpload.CustomerId;
    customerIdrange.AddComment(customerName, "author"); // Problem here        
var-worksheet=excel.Workbook.Worksheets[“Sheet1”];
var customerName=bulkUpload.CustomerId!=0 ? _customerModel.GetCustomerByID(bulkUpload.CustomerId).CustomerName:“无客户”;
var finalRow=bulkUpload.UnitCount!=null&&bulkUpload.UnitCount>0?(int)bulkUpload.UnitCount+1:2;
var headerRow=新列表{
“CustomerID”,//A1
“VIN”//B1
“单元号”//C1
“年”//D1
“Make”//E1
“Model”,//F1
“联系人姓名”,//G1
“电话号码”,//H1
“传真号码”//I1
};
var customerIdrange=工作表。选择范围[2,1,finalRow,1];
customerIdrange.Value=bulkUpload.CustomerId;
customerIdrange.AddComment(customerName,“author”);//这里有问题
`

我已经尝试在Excel单元格区域上使用AddComments()方法,使用单元格[“A2:A5”]选择,选择范围[“A2:A5”]、单元格[2,1,5,1]和选择范围[2,1,5,1]。在VisualStudio中,一切似乎都很好,但当我打开Excel文件时,总是出现同样的错误


我知道我可以使用AddComment()向单个单元格添加注释,但我真的不想在每个单元格中循环,一次只做一个。文档使它听起来好像我也应该能够将它添加到一个范围中,所以我更愿意这样做。

我会避免使用
[int-FromRow,int-FromCol,int-ToRow,int-ToCol]
索引器,因为
AddComment
逻辑似乎不能正确支持。但是的
将正常工作:

//var customerIdrange = worksheet.SelectedRange[2, 1, finalRow, 1];
for (var i = 2; i <= finalRow; i++)
{
    var customerIdrange = worksheet.SelectedRange[i, 1];
    customerIdrange.Value = bulkUpload.CustomerId;
    customerIdrange.AddComment(customerName, "author"); // Problem here 
}
//var customerIdrange=worksheet.SelectedRange[2,1,finalRow,1];
对于(var i=2;i