Java操作Excel之POI简单例子

时间:2022-04-21 20:46:49
 21 /**
22 * 利用POI操作Excel表单
23 *
24 * 需要jar包:
25 * HSSF针对03及以前版本,即.xls后缀
26 * |---poi-3.16.jar
27 * XSSF针对07及以后版本,即xlsx后缀
28 * |---poi-3.16.jar
29 * |---poi-ooxml.3.16.jar
30 * |---poi-ooxml-schemas-3.16.jar
31 * |---xmlbeans-2.6.0.jar
32 * |---commons-collections4-4.1.jar
33 *
34 * 工作簿:Workbook
35 * 工作表:Sheet
36 * 行: Row
37 * 表格:Cell
38 */
39 public class Demo {
40
41 /**
42 * 读取Excel表格
43 * @throws IOEception
44 * @throws InvalidFormatException
45 * @throws EncryptedDocumentException
46 */
47 @Test
48 public void readExcel() throws EncryptedDocumentException, InvalidFormatException, IOException {
49 //工作簿
50 Workbook workbook = WorkbookFactory.create(new File("src/userExce1.xls"));
51 //工作表
52 Sheet sheet = workbook.getSheetAt(0);
53 //
54 Row row = sheet.getRow(1);
55 //
56 Cell cell = row.getCell(0);
57
58 System.out.println("表格值为:" + cell.getStringCellValue());
59 }
60
61 /**
62 * 创建Excel表格
63 * @throws IOException
64 * @throws InvalidFormatException
65 * @throws EncryptedDocumentException
66 */
67 @Test
68 public void writeExcel() throws EncryptedDocumentException, InvalidFormatException, IOException {
69 //工作簿
70 Workbook workbook = new XSSFWorkbook();
71 //工作表
72 Sheet sheet = workbook.createSheet("我的第一个sheet");
73 //
74 Row row = sheet.createRow(0);
75 //
76 Cell cell = row.createCell(3);
77
78 cell.setCellValue("哈哈表格插入一个内容");
79
80 workbook.write(new FileOutputStream("c:/test.xlsx"));
81 }
82
83 /**
84 * 读取Excel表格,修改样式和内容并保存
85 * @throws IOEception
86 * @throws InvalidFormatException
87 * @throws EncryptedDocumentException
88 */
89 @Test
90 public void readAndModifyExcel() throws EncryptedDocumentException, InvalidFormatException, IOException {
91
92 String filename = "src/userExcel.xlsx";
93 File file = new File(filename);
94
95 System.out.println(file.getAbsolutePath());
96
97 Workbook workbook = WorkbookFactory.create(file);
98 Sheet sheet = workbook.getSheetAt(0);
99
100 //合并单元格,在工作表添加合并单元格
101 CellRangeAddress headSpan = new CellRangeAddress(2, 2, 0, 4);
102 sheet.addMergedRegion(headSpan);
103
104 //在合并的位置设置表头文字
105 Row row = sheet.createRow(0);
106 Cell cell = row.createCell(0);
107 cell.setCellValue("这是表头");
108
109 //写入文本中
110 String savedName = filename.matches("\\S+\\.xls") ? "c:/" + filename.replace("src/", "") : "c:/" + filename.replace("src/", "");
111 workbook.write(new FileOutputStream(savedName));
112 }
113
114 }


excel基础元素

工作簿
工作表(属于工作簿)
行(属于工作表)
单元格(属于行;由行和列确定)

-------------操作excel
1、创建/读取工作簿
2、创建/读取工作表
3、创建/读取行
4、创建/读取单元格


-----------excel样式

合并单元格对象(CellRangeAddress)属于工作簿;运用于工作表

CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol) 起始行号,结束行号,起始列号,结束列号


样式是属于工作簿的;运用于单元格

字体是属于工作簿的;加载于样式;通用样式运用于单元格