- 最後登錄
- 2022-11-24
- 在線時間
- 1 小時
- 註冊時間
- 2008-9-2
- 閱讀權限
- 20
- 精華
- 0
- UID
- 4896884
- 帖子
- 541
- 積分
- 212 點
- 潛水值
- 13707 米
| 所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。 本帖最後由 rr09192084 於 2016-7-12 09:23 PM 編輯
寫程式有點像解數學方程式,相同的元素可以提出來,會重複使用的程式碼可以寫成方法來應用,跟之前一樣先在在ExtensionUtility.cs裡添加這個擴充方法- public static void SetBorderAllCells(this ISheet ws, NPOI.SS.UserModel.ICellStyle style)
- {
- var allcells = new CellRangeAddress(0, ws.LastRowNum, 0, ws.GetRow(0).LastCellNum - 1);
- for (int i = allcells.FirstRow; i <= allcells.LastRow; i++)
- {
- var row = ws.GetRow(i);
- for (int j = allcells.FirstColumn; j <= allcells.LastColumn; j++)
- {
- row.GetCell(j).CellStyle = style;
- }
- }
- }
複製代碼 然後一樣在FORM2裡應用,在- DT.TableName = "測試二";
- wb.AddWorkSheet(DT);
複製代碼 的後面添加- ICellStyle styleA = wb.CreateCellStyle();
- styleA.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
- styleA.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
- styleA.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
- styleA.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
- sheet.SetBorderAllCells(styleA);
- //或是用下面這行都可以
- //wb.GetSheetAt(0).SetBorderAllCells(styleA);
- wb.GetSheetAt(1).SetBorderAllCells(styleA);
複製代碼 最後把之前我寫的這段刪掉- //畫格線我目前只會一格一格的畫,資料多相當慢。
- //如果有先進大大會快速的一次畫所有範圍格線的方法,請不吝告知。
- /*
- for (int i = 0; i <= sheet.LastRowNum; i++)
- {
- for (int j = 0; j < sheet.GetRow(0).LastCellNum; j++)
- {
- Application.DoEvents();
- CellRangeAddress range = new CellRangeAddress(i, i, j, j);
- if (i == 0)
- {
- HSSFRegionUtil.SetBorderTop(NPOI.SS.UserModel.BorderStyle.Thin, range, (HSSFSheet)sheet, (HSSFWorkbook)wb);
- }
- HSSFRegionUtil.SetBorderBottom(NPOI.SS.UserModel.BorderStyle.Thin, range, (HSSFSheet)sheet, (HSSFWorkbook)wb);
- HSSFRegionUtil.SetBorderRight(NPOI.SS.UserModel.BorderStyle.Thin, range, (HSSFSheet)sheet, (HSSFWorkbook)wb);
- if (j == 0)
- {
- HSSFRegionUtil.SetBorderLeft(NPOI.SS.UserModel.BorderStyle.Thin, range, (HSSFSheet)sheet, (HSSFWorkbook)wb);
- }
- HSSFRegionUtil.SetBorderBottom(NPOI.SS.UserModel.BorderStyle.Thin, range, (HSSFSheet)sheet, (HSSFWorkbook)wb);
- }
- }
- */
複製代碼 這段效能不好,我把它重新寫過並包在擴充方法模組裡。... |
|