C#测试调用EPPlus根据批注设置excel单元格内容
EPPlus也是常用的Excel文件操作库,但不同于ClosedXML,使用EPPlus前需要设置授权信息,商业应用需要设置商业授权,个人使用或非商业应用也需要设置授权(测试的时候只需设置全名,保存excel文件时会保存到文件详细信息中的作者属性)。EPPlus同样支持操作单元格批注,但调用方式与ClosedXML差异较大,本文学习调用EPPlus查找批注关联的单元格并设置内容的基本方式。
VS2022新建Winform项目,在Nuget包管理器中搜索并安装EPPlus包。
使用EPPlus的几点事项包括:
1)通过ExcelPackage.License设置授权信息,调用SetCommercial函数设置商业授权,调用SetNonCommercialPersonal或SetNonCommercialOrganization设置非商业应用授权,也支持其它方式,详见参考文献1;
2)使用ExcelPackage打开Excel文件,用ExcelWorksheet获取工作簿;
3)ExcelWorksheet.Comments可以直接获取当前工作簿中的所有批注信息;
4)ExcelComment批注类的Address属性保存单元格的位置字符串,如A2、C4等。
最后是测试代码及程序运行截图:
ExcelPackage.License.SetNonCommercialPersonal("XXXXX");
using ExcelPackage package = new ExcelPackage(new FileInfo(txtFilePath.Text));
ExcelWorksheet worksheet = package.Workbook.Worksheets[0];for(int i=worksheet.Comments.Count-1;i>=0;i--)
{if (worksheet.Comments[i].Text == txtPz.Text){worksheet.Cells[worksheet.Comments[i].Address].Value = txtContent.Text;worksheet.Comments.RemoveAt(i);break;}
} package.Save();
参考文献:
[1]https://github.com/EPPlusSoftware/EPPlus
[2]https://developer.aliyun.com/article/1613634
[3]https://blog.csdn.net/weixin_35920379/article/details/148448518