Java使用POI插件将数据以excel形式备份

Posted 阿叮339

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java使用POI插件将数据以excel形式备份相关的知识,希望对你有一定的参考价值。

将数据以表格形式进行备份

(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形式备份的主要内容,如果未能解决你的问题,请参考以下文章

Java中如何读取excel文件内容并且将内容以表格的形式显示在窗体里?

java大概1000W数据导出成excel有啥好的建议。(最好是插件,POI、JXL、FastExcel已试过,数据量太大,不

Java使用 POI 操作Excel

java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题

java poi 生成excel 折线图能以列为参数吗

重构:以Java POI 导出EXCEL为例