其他-poi的使用(操作excel表格)
来源:互联网 发布:极路由网络唤醒 编辑:程序博客网 时间:2024/05/23 11:15
/** * 系统数据导出Excel 生成器 * @version 1.0 */package cn.itcast.elec.util;import java.io.OutputStream;import java.util.ArrayList;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFFont;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 ExcelFileGenerator {private final int SPLIT_COUNT = 1500; //Excel每个工作簿的行数private ArrayList fieldName = null; //excel标题数据集private ArrayList fieldData = null; //excel数据内容private HSSFWorkbook workBook = null;/** * 构造器 * @param fieldName 结果集的字段名 * @param data */public ExcelFileGenerator(ArrayList fieldName, ArrayList fieldData) {this.fieldName = fieldName;this.fieldData = fieldData;}/** * 创建HSSFWorkbook对象 * @return HSSFWorkbook */public HSSFWorkbook createWorkbook() {workBook = new HSSFWorkbook();int rows = fieldData.size();int sheetNum = 0;if (rows % SPLIT_COUNT == 0) {sheetNum = rows / SPLIT_COUNT;} else {sheetNum = rows / SPLIT_COUNT + 1;}for (int i = 1; i <= sheetNum; i++) {HSSFSheet sheet = workBook.createSheet("Page " + i);HSSFRow headRow = sheet.createRow((short) 0); for (int j = 0; j < fieldName.size(); j++) {HSSFCell cell = headRow.createCell((short) j);//添加样式cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setEncoding(HSSFCell.ENCODING_UTF_16);//添加新样式//设置所有单元格的宽度sheet.setColumnWidth((short)j,(short)6000);//创建样式HSSFCellStyle cellStyle=workBook.createCellStyle();//创建字体HSSFFont font=workBook.createFont();//将字体加粗font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置字体的颜色font.setColor(HSSFColor.RED.index);//将新设置的字体属性放置到样式中cellStyle.setFont(font);//cell.setCellStyle(cellStyle);if(fieldName.get(j) != null){cell.setCellValue((String) fieldName.get(j));}else{cell.setCellValue("-");}}for (int k = 0; k < (rows < SPLIT_COUNT ? rows : SPLIT_COUNT); k++) {HSSFRow row = sheet.createRow((short) (k + 1));//将数据内容放入excel单元格ArrayList rowList = (ArrayList) fieldData.get((i - 1)* SPLIT_COUNT + k);for (int n = 0; n < rowList.size(); n++) {HSSFCell cell = row.createCell((short) n);cell.setEncoding(HSSFCell.ENCODING_UTF_16);if(rowList.get(n) != null){cell.setCellValue((String) rowList.get(n).toString());}else{cell.setCellValue("");}}}}return workBook;}public void expordExcel(OutputStream os) throws Exception {workBook = createWorkbook();workBook.write(os);os.close();}}
阅读全文
0 0
- 其他-poi的使用(操作excel表格)
- 其他-jxl的使用(操作excel表格)
- POI操作Excel表格
- POI操作Excel表格
- poi操作Excel表格
- POI操作excel表格
- POI操作 导出Excel表格
- poi方式操作excel表格数据(数据库查询到的数据导入excel文件)
- 使用POI输出EXCEL表格
- 使用POI输出EXCEL表格
- 使用POI 导出excel表格
- 使用poi解析excel表格
- 使用POI导出Excel表格
- 使用poi导出excel表格
- POI操作Excel表格系列5 --- 遇到的问题
- 使用POI操作Excel
- 使用POI操作EXCEl
- 使用poi操作excel
- ARC下的内存管理
- Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程
- 实现android上传多张图片和文字给php后台
- Kotlin从入门到放弃之基础篇(二)——包和控制流
- 2017-09-19HTML基本标签
- 其他-poi的使用(操作excel表格)
- Struts2配置文件
- mysql死锁,可视化工具无法操作
- HDU 3336 Count the string 所有前缀在串中的出现总次数
- TCP的三次握手和四次挥手的过程?三次握手改成两次或者四次可以吗为什么?
- JavaWEB中request.getRequestURI()、getRequestURL()、getContextPath()、getServletPath()区别
- stm32在rt-thread上使用uart4实现gps的输出
- java设计模式综合项目实战
- MySQL事务隔离级别