本文实例讲述了java使用POI读取properties文件并写到Excel的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
package com.hubberspot.code; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.Properties; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; public class ReadWriteXlsProperties { // Create a HashMap which will store the properties HashMap< String, String > propMap = new HashMap< String, String >(); public static void main(String[] args) { // Create object of ReadWriteXlsProperties ReadWriteXlsProperties readWriteXlsDemo = new ReadWriteXlsProperties(); // Call method readProperties() it take path to properties file readWriteXlsDemo.readProperties( "config.properties" ); // Call method writeToExcel() it will take path to excel file readWriteXlsDemo.writeToExcel( "test.xls" ); } private void readProperties(String propertiesFilePath) { // Create a File object taking in path of properties // file File propertiesFile = new File(propertiesFilePath); // If properties file is a file do below stuff if (propertiesFile.isFile()) { try { // Create a FileInputStream for loading the properties file FileInputStream fisProp = new FileInputStream(propertiesFile); // Create a Properties object and load // properties key and value to it through FileInputStream Properties properties = new Properties(); properties.load(fisProp); // Create a object of Enumeration and call keys() // method over properties object created above // it will return us back with a Enumeration types Enumeration< Object > keysEnum = properties.keys(); // Looping over the elements of Enumeration while (keysEnum.hasMoreElements()) { // Extracting the key and respective values from it. String propKey = (String)keysEnum.nextElement(); String propValue = (String)properties.getProperty(propKey); // After extracting the key and value from the properties file // we will store the values in a HashMap. propMap.put( propKey.toLowerCase().trim(),propValue.toLowerCase().trim()); } // printing the HashMap and closing the file FileInputStream System.out.println( "Properties Map ... \n" + propMap); fisProp.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } private void writeToExcel(String excelPath) { // Create a Workbook using HSSFWorkbook object HSSFWorkbook workBook = new HSSFWorkbook(); // Create a sheet with name "properties" by // the createSheet method of the Workbook HSSFSheet worksheet = workBook.createSheet( "Properties" ); // Create a row by calling createRow method of the // Worksheet HSSFRow row = worksheet.createRow(( short ) 0 ); // Create a cell style by calling createCellStyle() // from the workbook HSSFCellStyle cellStyle = workBook.createCellStyle(); // setting of the foreground and fill pattern by calling methods // of HSSFCellStyle as setFillForegroundColor() and setFillPattern() cellStyle.setFillForegroundColor(HSSFColor.GOLD.index); cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // Create a HSSFCell from the row object created above HSSFCell cell1 = row.createCell( 0 ); // Setting the value of the cell as the keys by calling // setCellValue() method over the HSSFCell cell1.setCellValue( new HSSFRichTextString( "Keys" )); // Giving it the style created above. cell1.setCellStyle(cellStyle); HSSFCell cell2 = row.createCell( 1 ); cell2.setCellValue( new HSSFRichTextString( "Values" )); cell2.setCellStyle(cellStyle); // Create a Iterator and as propMap is a HashMap // it is converted to a HashSet by calling keySet() method // which will return with Set. // Iterator object is pointed to keys of Set Iterator< String > iterator = propMap.keySet().iterator(); // Looping across the elements of Iterator while (iterator.hasNext()) { // Creating a new row from the worksheet // at the last used row + 1 location HSSFRow rowOne = worksheet.createRow(worksheet.getLastRowNum()+ 1 ); // Creating two cells in the row at 0 and 1 position. HSSFCell cellZero = rowOne.createCell( 0 ); HSSFCell cellOne = rowOne.createCell( 1 ); // extracting key and value from the map and set String key = (String) iterator.next(); String value = (String) propMap.get(key); // setting the extracted keys and values in the cells cellZero.setCellValue( new HSSFRichTextString(key)); cellOne.setCellValue( new HSSFRichTextString(value)); } try { FileOutputStream fosExcel = null ; // Creating a xls File File fileExcel = new File(excelPath); // Setting the File to FileOutputStream fosExcel = new FileOutputStream(fileExcel); // Writing the contents of workbook to the xls workBook.write(fosExcel); // Flushing the FileOutputStream fosExcel.flush(); // Closing the FileOutputStream fosExcel.close(); } catch (Exception e){ e.printStackTrace(); } } } |
希望本文所述对大家的java程序设计有所帮助。