java는 POI를 사용하여properties 파일을 읽고 Excel에 쓰는 방법
6684 단어 javaPOIpropertiesExcel
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();
}
}
}
본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.