java는 POI를 사용하여properties 파일을 읽고 Excel에 쓰는 방법

본고는 자바가 POI를 사용하여properties 파일을 읽고 Excel에 쓰는 방법을 실례로 설명한다.여러분에게 참고할 수 있도록 나누어 드리겠습니다.구체적인 실현 방법은 다음과 같다.

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 ... 
" + 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(); } } }
본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기