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


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

    (1)导入poi的jar包

      放入lib下:  WebRootWEB-INFlibpoi-3.2-FINAL-20081019.jar

     下载链接:https://github.com/DFX339/POI_Plugin.git

    (2)StringBuffer转换为二维数组

      //定义一个StringBuffer,以 分一维数组,以 分二维数组

      StringBuffer strff = new StringBuffer("姓名 年龄 性别 小仙女 18 女 ");

     //将StringBuffer数据转换为一维数组:按行记录区分
      Object[] dataLine = strff.toString().split("
    ");
                    
     //定义二维数组,将stringBuffer类型的数据转换为二维数组
     Object[][] data = new Object[dataLine.length][];
     for(int i=0; i<dataLine.length; i++)
     {    
         //将行数据根据	拆分,赋值到一维数组的各个列中
         data[i] = dataLine[i].toString().split("	");
      }
                        

    (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 222 333 444 555 666 777 888r

    转换为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("
    ");
                    
                //定义二维数组,将stringBuffer类型的数据转换为二维数组
                Object[][] data = new Object[dataLine.length][];
                for(int i=0; i<dataLine.length; i++)
                {    
                    //将行数据根据	拆分,赋值到一维数组的各个列中
                     data[i] = dataLine[i].toString().split("	");
                }
                        
                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());
                }
            }
                
  • 相关阅读:
    Python中的try...except...finally
    JavaScript 实现双向队列并用此来测试一个单词是否为回文
    js 触发 change 事件
    MySQL8 重置改root密码及开放远程访问
    根据数组下标在MongoDB中修改数组元素
    pymongo CursorNotFound错误
    mongodb根据子项中的指标查找最小或最大值
    正则文本过滤时的一些注意事项
    github page更新后不生效
    Xpath同时选取不同属性的元素
  • 原文地址:https://www.cnblogs.com/DFX339/p/8631136.html
Copyright © 2020-2023  润新知