这几天在为公司做员工报休系统,在管理后台需要将所有人员的报休情况导出Excel。
因为导出Excel是xlsx的,在网上找了一大堆用NPOI添加批注的方法,结果报错!
先看看导出的格式:
用网上的示例IDE不报错:
HSSFPatriarch patr = (HSSFPatriarch)sheet2.CreateDrawingPatriarch(); HSSFComment comment2 = (HSSFComment)patr.CreateCellComment(new HSSFClientAnchor(0, 0, 0, 0, 0, 0, 0, 0)); comment2.String = new HSSFRichTextString(isRest.memo); comment2.Author = @"ycrc"; agtRestCells.CellComment = comment2;
但在调试的时候:
结果发现,网上的示例是针对Xls版本的,也就是说在创建工作薄的时候用的 HSSFWorkbook,而我用的是XSSFWorkbook。
继续看异常提示,既然有NPOI.XSSF.UserModel.XSSFDrawing这个类型。
然后发现IComment可以不进行强制转换,最后,把单元格的CellComment设置为Comment1就行了
网上一大篇介绍批注的定位,实际上可以直接把它设为0
来源:https://www.cnblogs.com/wangfangxu/p/10824488.html