poi导出大量excel以及表格属性设置

标签: java poi SXSSFWorkbook
32人阅读 评论(0) 收藏 举报
分类:

1、列宽

https://blog.csdn.net/duqian42707/article/details/51491312

sheet.setColumnWidth(i,24*256+184);
            sheet.trackAllColumnsForAutoSizing();
            sheet.autoSizeColumn(i);

2、样式

DataFormat dataFormat=wb.createDataFormat();
CellStyle timeSyle=wb.createCellStyle();
timeSyle.setDataFormat(dataFormat.getFormat("yyyy/m/d h:mm:ss"));
setCellValue(double)

3、大于6万多行时,使用SXSSFWorkbook

比如

  @Override
    public SXSSFWorkbook exportProjectAllList(FindProjectManageAllListReq req) throws ServicesException, ParseException {

        List<ProjectManageAllList> list = findProjectManageAllListForExcel(req);
//        List<FindLoanSuccessListResp> list = baseDao.findAllIsPageByCustom(event);

        // 第一步,创建一个webbook,对应一个Excel文件
        XSSFWorkbook wb1 = new XSSFWorkbook();
        SXSSFWorkbook wb = new SXSSFWorkbook(wb1,100);
        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        SXSSFSheet sheet = wb.createSheet("运营统计报表");

        // 第三步,在sheet中添加表头第0,注意老版本poiExcel的行数列数有限制short
        SXSSFRow row = sheet.createRow(0);

        // 第四步,创建单元格,并设置值表头 设置表头居中
        CellStyle style = wb.createCellStyle();
        style.setAlignment(HorizontalAlignment.CENTER);// 创建一个居中格式
        style.setWrapText(false);

        String[] head={"序号 No","项目编号   Order ID","流水号 flow no","用户名   User Name","姓名   Name",//5
                "手机号   phone","申请金额   Apply amount","放款金额   Lending Amount","借款期限   tenor","放款日期   Lending Date",
                "应还款日   Repay Date","应还本息   Repay Amount","已还金额 payed amount",  "结清时间 settle date","资金名称 fund name",
                "逾期天数 overdue day","逾期罚息 overdue fee","本期应还总金额 current Total"//18
        };
        int indexHead=0;

        short colNum=0;
        SXSSFCell cell=null;
        style.setWrapText(false);

        DataFormat dataFormat=wb.createDataFormat();
        CellStyle timeSyle=wb.createCellStyle();
        timeSyle.setDataFormat(dataFormat.getFormat("yyyy/m/d h:mm:ss"));

        DataFormat dataFormat2=wb.createDataFormat();
        CellStyle dateSyle=wb.createCellStyle();
        dateSyle.setDataFormat(dataFormat2.getFormat("yyyy/m/d"));

        for(int i=0;i<head.length;i++){
            cell = row.createCell(colNum++);
            cell.setCellValue(new XSSFRichTextString(head[indexHead++]));
            cell.setCellStyle(style);
//            sheet.setColumnWidth(i,24*256+184);
            sheet.trackAllColumnsForAutoSizing();
            sheet.autoSizeColumn(i);
        }

        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");

        for (int i = 0; i < list.size(); i++)
        {
            colNum=0;
            row = sheet.createRow(i + 1);
            ProjectManageAllList bus = list.get(i);

            row.createCell(colNum++).setCellValue((double)i + 1);
            row.createCell(colNum++).setCellValue(bus.getNumber());
            row.createCell(colNum++).setCellValue(bus.getFlowNo());
            row.createCell(colNum++).setCellValue(bus.getLoginname());
            row.createCell(colNum++).setCellValue(bus.getRealname());

            row.createCell(colNum++).setCellValue(bus.getPhone());
//
            row.createCell(colNum++).setCellValue(bus.getResalePriceAsk()==null?0:Double.valueOf(bus.getResalePriceAsk()));
            row.createCell(colNum++).setCellValue(bus.getFirstPriceLoan()==null?0:Double.valueOf(bus.getFirstPriceLoan()));
            row.createCell(colNum++).setCellValue(bus.getDeadline());

            cell=row.createCell(colNum++);
            cell.setCellStyle(timeSyle);
            cell.setCellValue(bus.getLoanTime()==null?null:dateFormat.parse(bus.getLoanTime()));

            cell=row.createCell(colNum++);
            cell.setCellStyle(dateSyle);
            cell.setCellValue(bus.getRepaymentDate()==null?null:dateFormat2.parse(bus.getRepaymentDate()));

            row.createCell(colNum++).setCellValue(bus.getCurrentBalance()==null?0:Double.valueOf(bus.getCurrentBalance()));
            row.createCell(colNum++).setCellValue(bus.getAlreadyBalance()==null?0:Double.valueOf(bus.getAlreadyBalance()));

            cell=row.createCell(colNum++);
            cell.setCellStyle(timeSyle);
            cell.setCellValue(bus.getRealityDate()==null?null:dateFormat.parse(bus.getRealityDate()));

            row.createCell(colNum++).setCellValue(bus.getFundsName());

            row.createCell(colNum++).setCellValue(bus.getOverdueDay()==null?0:Integer.valueOf(bus.getOverdueDay()));
            row.createCell(colNum++).setCellValue(bus.getCurrentOverdue()==null?0:Double.valueOf(bus.getCurrentOverdue()));
            row.createCell(colNum++).setCellValue(bus.getCurrentTotal()==null?0:Double.valueOf(bus.getCurrentTotal()));

        }
        return wb;

    }

查看评论

Java Itext+jfreehart 导入含有图形的word文档

今天下午没事,就整合了项目中的导入word文档的代码,因为业务要求要把数据可视化,所以选择了就freechart插件作为画图工具,导入word文档选择的Itext,闲话不多说,直接上代码: jar包:...
  • qq_29631809
  • qq_29631809
  • 2017-05-12 22:25:01
  • 254

Qt入门-QLabel类

QLabel是QT界面中的标签类,它从QFrame下继承: class Q_GUI_EXPORT QLabel : public QFrame { Q_OBJECT 定义一个QLabl...
  • xgbing
  • xgbing
  • 2012-07-19 11:23:39
  • 53517

Qt 常用类 (11)—— QLabel

QLabel 类代表标签,它是一个用于显示文本或图像的窗口部件。                  构造         QLabel 类支持以下构造函数: QLabel(QWidget *p...
  • HMSIWTV
  • HMSIWTV
  • 2012-05-14 09:58:40
  • 16946

Java语言程序设计 第十六章 (16.22、16.23、16.24、16.25、16.26)

程序小白,希望和大家多交流,共同学习 16.22 //控制一段音频播放的开始,循环和停止 import javafx.application.Application; impor...
  • cheng_cuo_tuo
  • cheng_cuo_tuo
  • 2018-03-15 21:15:14
  • 24

POI中设置Excel单元格格式(背景色,居中,字体,边框,列宽,行高,自动换行等)

EXCEL相关的常规内容,注释比较详细,希望对读者有一定的帮助 HSSFWorkbook wb = new HSSFWorkbook(); //创建HSSFWorkbook 对象 HSSFSheet...
  • qq_27937043
  • qq_27937043
  • 2017-06-01 18:45:03
  • 3654

HSSFCellStyle样式详解

public final class HSSFCellStyle extends java.lang.Object implements CellStyle High level represe...
  • jiajane
  • jiajane
  • 2015-09-02 13:24:27
  • 27529

POI教程

文章转载自:易百教程 [http:/www.yiibai.com] 本文地址:http://www.yiibai.com/apache_poi/apache_poi_java_excel.html ...
  • yellowd1
  • yellowd1
  • 2015-03-25 22:07:25
  • 5668

poi实现大量数据导出excel

1、需要的jar包 2、poi的工具类 import java.util.ArrayList; import java.util.List; import org.apache.poi.hs...
  • TRFlor
  • TRFlor
  • 2017-01-04 16:31:35
  • 2240

java poi导出Excel表格超大数据量解决方案

Java实现导出excel表格功能,大部分都会使用apache poi, apache poi API 地址
  • qiaoshuai0920
  • qiaoshuai0920
  • 2016-07-02 10:59:43
  • 13123

Exel下载

:找到对应架包::创建jsp对应:下载创建对应的Action:package com.pdsu.Action; import java.io.IOException; import java....
  • lamboo_cn
  • lamboo_cn
  • 2016-03-23 17:05:41
  • 244
    个人资料
    持之以恒
    等级:
    访问量: 31万+
    积分: 3872
    排名: 1万+