Java USES the POI method to read the properties file and write to Excel
- 2020-04-01 03:57:17
- OfStack
This article illustrates how Java USES POI to read the properties file and write it to Excel. Share with you for your reference. The specific implementation method is as follows:
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();
}
}
}
I hope this article has been helpful to your Java programming.