1.import java.io.File;
2.import java.io.FileInputStream;
3.import java.io.FileNotFoundException;
4.import java.io.FileOutputStream;
5.import java.io.IOException;
6.import java.util.Calendar;
7.import java.util.Date;
8.
9.import https://www.sodocs.net/doc/b310679248.html,ermodel.HSSFCell;
10.import https://www.sodocs.net/doc/b310679248.html,ermodel.HSSFSheet;
11.import https://www.sodocs.net/doc/b310679248.html,ermodel.HSSFWorkbook;
12.import org.apache.poi.poifs.filesystem.POIFSFileSystem;
13.import https://www.sodocs.net/doc/b310679248.html,ermodel.RichTextString;
14./**
15. * 共分为六部完成根据模板导出excel操作:
16. * 第一步、设置excel模板路径(setSrcPath)
17. * 第二步、设置要生成excel文件路径(setDesPath)
18. * 第三步、设置模板中哪个Sheet列(setSheetName)
19. * 第四步、获取所读取excel模板的对象(getSheet)
20. * 第五步、设置数据(分为6种类型数据:setCellStrValue、setCellDateValue、
setCellDoubleValue、setCellBoolValue、setCellCalendarValue、
setCellRichTextStrValue)
21. * 第六步、完成导出(exportToNewFile)
22. *
23. * @author Administrator
24. *
25. */
26.public class ExcelUtil {
27.private String srcXlsPath = "";// // excel模板路径
28.private String desXlsPath = "";
29.private String sheetName = "";
30. POIFSFileSystem fs = null;
31. HSSFWorkbook wb = null;
32. HSSFSheet sheet = null;
33.
34./**
35. * 第一步、设置excel模板路径
36. * @param srcXlsPath
37. */
38.public void setSrcPath(String srcXlsPath) {
39.this.srcXlsPath = srcXlsPath;
40. }
41.
42./**
43. * 第二步、设置要生成excel文件路径
44. * @param desXlsPath
45. */
46.public void setDesPath(String desXlsPath) {
47.this.desXlsPath = desXlsPath;
48. }
49.
50./**
51. * 第三步、设置模板中哪个Sheet列
52. * @param sheetName
53. */
54.public void setSheetName(String sheetName) {
55.this.sheetName = sheetName;
56. }
57.
58./**
59. * 第四步、获取所读取excel模板的对象
60. */
61.public void getSheet() {
62.try {
63. File fi = new File(srcXlsPath);
64.if(!fi.exists()){
65. System.out.println("模板文件:"+srcXlsPath+"不存在!");
66.return;
67. }
68. fs = new POIFSFileSystem(new FileInputStream(fi));
69. wb = new HSSFWorkbook(fs);
70. sheet = wb.getSheet(sheetName);
71. } catch (FileNotFoundException e) {
72. e.printStackTrace();
73. } catch (IOException e) {
74. e.printStackTrace();
75. }
76. }
77.
78./**
79. * 第五步、设置字符串类型的数据
80. * @param rowIndex--行值
81. * @param cellnum--列值
82. * @param value--字符串类型的数据
83. */
84.public void setCellStrValue(int rowIndex, int cellnum, String value) {
85. HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);
86. cell.setCellValue(value);
87. }
88.
89./**
90. * 第五步、设置日期/时间类型的数据
91. * @param rowIndex--行值
92. * @param cellnum--列值
93. * @param value--日期/时间类型的数据
94. */
95.public void setCellDateValue(int rowIndex, int cellnum, Date value) {
96. HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);
97. cell.setCellValue(value);
98. }
99.
100./**
101. * 第五步、设置浮点类型的数据
102. * @param rowIndex--行值
103. * @param cellnum--列值
104. * @param value--浮点类型的数据
105. */
106.public void setCellDoubleValue(int rowIndex, int cellnum, double value) {
107. HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);
108. cell.setCellValue(value);
109. }
110.
111./**
112. * 第五步、设置Bool类型的数据
113. * @param rowIndex--行值
114. * @param cellnum--列值
115. * @param value--Bool类型的数据
116. */
117.public void setCellBoolValue(int rowIndex, int cellnum, boolean value) {
118. HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);
119. cell.setCellValue(value);
120. }
121.
122./**
123. * 第五步、设置日历类型的数据
124. * @param rowIndex--行值
125. * @param cellnum--列值
126. * @param value--日历类型的数据
127. */
128.public void setCellCalendarValue(int rowIndex, int cellnum, Calendar va lue) {
129. HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);
130. cell.setCellValue(value);
131. }
132.
133./**
134. * 第五步、设置富文本字符串类型的数据。可以为同一个单元格内的字符串的不同部分设置不同的字体、颜色、下划线
135. * @param rowIndex--行值
136. * @param cellnum--列值
137. * @param value--富文本字符串类型的数据
138. */
139.public void setCellRichTextStrValue(int rowIndex, int cellnum,
140. RichTextString value) {
141. HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);
142. cell.setCellValue(value);
143. }
144.
145./**
146. * 第六步、完成导出
147. */
148.public void exportToNewFile() {
149. FileOutputStream out;
150.try {
151. out = new FileOutputStream(desXlsPath);
152. wb.write(out);
153. out.close();
154. } catch (FileNotFoundException e) {
155. e.printStackTrace();
156. } catch (IOException e) {
157. e.printStackTrace();
158. }
159. }
160.}