- 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();
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/260320149119.html
来源: http://www.codesnippet.cn/detail/260320149119.html