EasyPoi導入導出最全案例:easypoi合併單元格導入

下面例子為創建產生一個excel,合併單元格,然後為合併後的單元格添加邊框

  1. package test;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import org.apache.poi.hssf.usermodel.HSSFCell;
  5. import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  6. import org.apache.poi.hssf.usermodel.HSSFRow;
  7. import org.apache.poi.hssf.usermodel.HSSFSheet;
  8. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  9. import org.apache.poi.ss.usermodel.BorderStyle;
  10. import org.apache.poi.ss.usermodel.Font;
  11. import org.apache.poi.ss.usermodel.HorizontalAlignment;
  12. import org.apache.poi.ss.util.CellRangeAddress;
  13. import org.apache.poi.ss.util.RegionUtil;
  14. public class ExcelPoiTest {
  15. public static void main(String[] args) {
  16. HSSFWorkbook workbook = new HSSFWorkbook(); // 創建一個excel
  17. // excel生成過程: excel–>sheet–>row–>cell
  18. HSSFSheet sheet = workbook.createSheet(“test”); // 為excel創建一個名為test的sheet頁
  19. HSSFRow row = sheet.createRow(1); // 創建一行,參數2表示第一行
  20. HSSFCell cellB2 = row.createCell(1); // 在B2位置創建一個單元格
  21. HSSFCell cellB3 = row.createCell(2); // 在B3位置創建一個單元格
  22. cellB2.setCellValue(“單元格B2”); // B2單元格填充內容
  23. cellB3.setCellValue(“單元格B3”); // B3單元格填充內容
  24. HSSFCellStyle cellStyle = workbook.createCellStyle(); // 單元格樣式
  25. Font fontStyle = workbook.createFont(); // 字體樣式
  26. fontStyle.setBold(true); // 加粗
  27. fontStyle.setFontName(“黑體”); // 字體
  28. fontStyle.setFontHeightInPoints((short) 11); // 大小
  29. // 將字體樣式添加到單元格樣式中
  30. cellStyle.setFont(fontStyle);
  31. // 邊框,居中
  32. cellStyle.setAlignment(HorizontalAlignment.CENTER);
  33. cellStyle.setBorderBottom(BorderStyle.THIN);
  34. cellStyle.setBorderLeft(BorderStyle.THIN);
  35. cellStyle.setBorderRight(BorderStyle.THIN);
  36. cellStyle.setBorderTop(BorderStyle.THIN);
  37. cellB2.setCellStyle(cellStyle); // 為B2單元格添加樣式
  38. // 合併單元格
  39. CellRangeAddress cra =new CellRangeAddress(1, 3, 1, 3); // 起始行, 終止行, 起始列, 終止列
  40. sheet.addMergedRegion(cra);
  41. // 使用RegionUtil類為合併後的單元格添加邊框
  42. RegionUtil.setBorderBottom(1, cra, sheet); // 下邊框
  43. RegionUtil.setBorderLeft(1, cra, sheet); // 左邊框
  44. RegionUtil.setBorderRight(1, cra, sheet); // 有邊框
  45. RegionUtil.setBorderTop(1, cra, sheet); // 上邊框
  46. // 輸出到本地
  47. String excelName = “/myExcel.xls”;
  48. FileOutputStream out = null;
  49. try {
  50. out = new FileOutputStream(excelName);
  51. workbook.write(out);
  52. out.flush();
  53. out.close();
  54. } catch (Exception e) {
  55. e.printStackTrace();
  56. } finally {
  57. if (out != null)
  58. try {
  59. out.close();
  60. } catch (IOException e) {
  61. e.printStackTrace();
  62. }
  63. out = null;
  64. }
  65. }
  66. }

生成的excel樣式為

POI實現EXCEL單元格合併及邊框樣式

簡單說明:

1.excel生成過程: excel–>sheet–>row–>cell 2.索引從0開始

3.合併單元格後保留最左上角的單元格(B3單元格被B2單元格覆蓋)

4.合併後單元格邊框通過RegionUtil設置,如果刪除以下代碼

  1. // 使用RegionUtil類為合併後的單元格添加邊框
  2. RegionUtil.setBorderBottom(1, cra, sheet); // 下邊框
  3. RegionUtil.setBorderLeft(1, cra, sheet); // 左邊框
  4. RegionUtil.setBorderRight(1, cra, sheet); // 有邊框
  5. RegionUtil.setBorderTop(1, cra, sheet); // 上邊框

效果為:

POI實現EXCEL單元格合併及邊框樣式

可以看到只有B2單元格有邊框。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/225521.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:44
下一篇 2024-12-09 14:44

相關推薦

發表回復

登錄後才能評論