C# NPOI操作Excel常用方法汇总

2019年10月14日17:47:42 评论 31

最近研究NPOI也算差不多了,现在梳理总结一下吧。

基本操作代码如下:

  1. //创建工作薄
  2. HSSFWorkbook book = new HSSFWorkbook();
  3. //添加一个sheet
  4. ISheet sheet1 = book.CreateSheet("Sheet1");
  5. #region  创建一个样式
  6. ICellStyle title = book.CreateCellStyle();
  7. //背景灰色
  8. title.FillForegroundColor = HSSFColor.Grey50Percent.Index;
  9. title.FillPattern = FillPattern.SolidForeground;
  10. //添加边框
  11. title.BorderBottom = BorderStyle.Thin;
  12. title.BorderLeft = BorderStyle.Thin;
  13. title.BorderRight = BorderStyle.Thin;
  14. title.BorderTop = BorderStyle.Thin;
  15. //文本居中
  16. title.Alignment = HorizontalAlignment.Center;
  17. //垂直居中
  18. title.VerticalAlignment = VerticalAlignment.Justify;
  19. //创建一个字体
  20. IFont font1 = book.CreateFont();
  21. //字体加粗
  22. font1.Boldweight = (short)FontBoldWeight.Bold;
  23. //字体大小 16
  24. font1.FontHeightInPoints = 16;
  25. title.SetFont(font1);
  26. #endregion
  27. //创建第一行数据
  28. IRow row0 = sheet1.CreateRow(0);
  29. //设置行高30 
  30. row0.Height = 30 * 20;
  31. //在第一行中创建第一个格子
  32. ICell titlecell = row0.CreateCell(0);
  33. titlecell.SetCellValue("名称内容");
  34. #region 设置列宽
  35. //设置列宽   SetColumnWidth(列的索引号从0开始, N * 256) 第二个参数的单位是1/256个字符宽度。例:将第四列宽度设置为了30个字符
  36. sheet1.SetColumnWidth(0, 6 * 256);
  37. #endregion
  38. #region 打印相关设置
  39. //设置打印区域sheetnum, int first row,int last row,int first col,int last col
  40. book.SetPrintArea(0, 0, 6, 0, sheet1.LastRowNum);
  41. // 设置固定列头
  42. sheet1.RepeatingRows = new CellRangeAddress(0, 6, 0, 6);
  43. //设置页码
  44. //sheet1.PrintSetup.UsePage = true;
  45. // 设置横向打印 纵向为false
  46. sheet1.PrintSetup.Landscape = false;
  47. // 设置页高为自动
  48. //sheet1.PrintSetup.FitHeight = -1;
  49. // 设置页宽为自动
  50. //sheet1.PrintSetup.FitWidth = -1;
  51. // 设置缩放比例
  52. sheet1.PrintSetup.Scale = 100;
  53. // 设置纸张尺寸 A4 = 9
  54. sheet1.PrintSetup.PaperSize = 9;
  55. // 设置不自适应
  56. //sheet1.FitToPage = true;
  57. // 设置打印边距
  58. sheet1.SetMargin(MarginType.RightMargin, (double)0.5);
  59. sheet1.SetMargin(MarginType.TopMargin, (double)0.5);
  60. sheet1.SetMargin(MarginType.LeftMargin, (double)0.5);
  61. sheet1.SetMargin(MarginType.BottomMargin, (double)0.5);
  62. //设置页脚打印
  63. sheet1.Footer.Left = "客户至上,服务第一是我们的宗旨;";
  64. //设置页脚
  65. #endregion

保存下载也特别简单

  1. // 写入到客户端 
  2. MemoryStream ms = new MemoryStream();
  3. book.Write(ms);
  4. ms.Seek(0, SeekOrigin.Begin);
  5. return File(ms, "application/vnd.ms-excel""文件名称");
weinxin
微信公众号
博客微信公众号,欢迎关注。
不忘初心 牢记使命

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: