1. 程式人生 > >Java使用POI插件將數據以excel形式備份

Java使用POI插件將數據以excel形式備份

i++ 數據 ring message 內容 write 數據類型 end workbook

將數據以表格形式進行備份

(1)導入poi的jar包

放入lib下: WebRoot\WEB-INF\lib\poi-3.2-FINAL-20081019.jar

(2)StringBuffer轉換為二維數組

  //定義一個StringBuffer,以 \r\n 分一維數組,以 \t 分二維數組

  StringBuffer strff = new StringBuffer("姓名\t年齡\t性別\r\n小仙女\t18\t女\r\n");

 //將StringBuffer數據轉換為一維數組:按行記錄區分
  Object[] dataLine = strff.toString().split("\r\n");
                
 //定義二維數組,將stringBuffer類型的數據轉換為二維數組
 Object[][] data = new Object[dataLine.length][];
 for(int i=0; i<dataLine.length; i++)
 {    
     //將行數據根據\t拆分,賦值到一維數組的各個列中
     data[i] = dataLine[i].toString().split("\t");
  }
                    

(3)使用示例一:(容易理解些)

這裏會將數據以表格的形式輸出,並且數據保存在 F盤下的 123.xls文件 中。

package testPoi;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class ExportExcel { public static void main(String[] args) throws FileNotFoundException, IOException { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("table"); //創建table工作薄 Object[][] datas = {{"區域", "總銷售額(萬元)", "總利潤(萬元)簡單的表格"}, {"江蘇省" , 9045, 2256}, {"江蘇省" , 9045, 2256}, {"廣東省", 3000, 690}}; HSSFRow row; HSSFCell cell;
for(int i = 0; i < datas.length; i++) { row = sheet.createRow(i);//創建表格行 for(int j = 0; j < datas[i].length; j++) { cell = row.createCell(j);//根據表格行創建單元格 cell.setCellValue(String.valueOf(datas[i][j])); } } wb.write(new FileOutputStream("f:/123.xls")); System.out.println("hello poi"); } }

(4)使用示例二:

註:這裏的數據內容 strff 裏面的數據格式類似這種: 111\t222\t333\t444\r\n555\t666\t777\t888r\n

轉換為excel數據為:111 222 333 444

          555 666 777 888

    /**
     * 將txt類型的數據轉換為xls所需數據類型
     * @param strff 文件中的數據內容
     * @param fileName1 :文件名
     * @param filePath :文件路徑
     * @return
     * @throws ApplicationException
     * @throws FileNotFoundException
     * @throws IOException
     */
    public HSSFWorkbook txtData_To_XlsData(StringBuffer content,String fileName,String filePath)
            throws ApplicationException
    {
        try{
           // logger.info("進入xls數據備份");
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet = wb.createSheet("table");  //創建table工作薄
            HSSFRow row; //定義table表中的行
            HSSFCell cell; //定義table表中的列
                    
            //將StringBuffer數據轉換為一維數組:按行記錄區分
            Object[] dataLine = content.toString().split("\r\n");
                
            //定義二維數組,將stringBuffer類型的數據轉換為二維數組
            Object[][] data = new Object[dataLine.length][];
            for(int i=0; i<dataLine.length; i++)
            {    
                //將行數據根據\t拆分,賦值到一維數組的各個列中
                 data[i] = dataLine[i].toString().split("\t");
            }
                    
            logger.info("開始xls數據備份");
            for(int i = 0; i < data.length; i++) {
                row = sheet.createRow(i);//創建表格行
                for(int j = 0; j < data[i].length; j++) {
                    cell = row.createCell(j);//根據表格行創建單元格
                    cell.setCellValue(String.valueOf(data[i][j]));
                }
            }
           // logger.info("開始xls數據備份,寫入文件");
            wb.write(new FileOutputStream(filePath+fileName));
           // logger.info("開始xls數據備份,寫入結束");
            return wb;
            }catch(FileNotFoundException e){
                logger.error((new StringBuilder("備份數據異常:文件不存在")).append(e).toString());
                throw new ApplicationException(e.getMessage());
            } catch (IOException e) {
                logger.error((new StringBuilder("備份數據異常:IOException")).append(e).toString());
                throw new ApplicationException(e.getMessage());
            }
        }
            

Java使用POI插件將數據以excel形式備份