java poi 只能创建?,JAVA POI创建多个sheet的Excel文件,及多个sheet也创建失败原因
最近写一个生成多个sheet页的表格,正好遇到了sheet只有一个的问题,拿出来跟大家分享下
解决问题直接下拉!
import java.io.IOException;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
/**
* 解析excel文件
* @author guosk
*/
public class WriteExcelUtils {
/**
* 输出Excel文档
* @param workbook
* @param resources 源数据
* @param headerNames 表头
* @param sheetName 表格名
* @param columnNum 列数量
* @param sheetNum 页码(sheet页码)
* @throws IOException
*/
public static void writeExcel(HSSFWorkbook workbook,
Listresources,
String[] headerNames,
String sheetName,
Integer columnNum,
Integer sheetNum) throws IOException {
// 创建表格
HSSFSheet sheet = workbook.createSheet();
sheet.setDefaultRowHeightInPoints(13);//默认宽度
workbook.setSheetName(sheetNum, sheetName);
// 设置列宽,根据
for(int i=0; i<=columnNum; i++){
sheet.setColumnWidth(i, 6000);
}
/*
* 创建合并区域
* CellRangeAddress(int 首行, int 最后一行, int 首列, int 最后一列);
*/
CellRangeAddress add = new CellRangeAddress(0, 0, 0, columnNum);
// 将创建的合并区域设置到表格中.
sheet.addMergedRegion(add);
// 创建行
Row header = sheet.createRow(0);
// 创建单元格. 合并后的单元格,编号合并.
//设置样式
CellStyle titleStyle = workbook.createCellStyle();
Font titlefont = workbook.createFont();
titlefont.setFontName("黑体");
//titlefont.setColor(IndexedColors.VIOLET.index);
titlefont.setFontHeightInPoints((short)20);
titlefont.setBold(true);
titleStyle.setFont(titlefont);
titleStyle.setAlignment(HorizontalAlignment.CENTER);
Cell c = header.createCell(0);
c.setCellValue(sheetName);
c.setCellStyle(titleStyle);
c = header.createCell(columnNum);
// 编写表头
// 定义表头的样式
CellStyle headerStyle = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontName("宋体");
//font.setColor(IndexedColors.VIOLET.index);
font.setFontHeightInPoints((short)16);
headerStyle.setFont(font);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
// 设置单元格样式
Row headerRow = sheet.createRow(1);
for (int i = 0; i < headerNames.length; i++) {
Cell cell = headerRow.createCell(i);
// 设置单元格样式
cell.setCellStyle(headerStyle);
cell.setCellValue(headerNames[i]);
}
// 设置表格数据的样式
CellStyle bodyStyle = workbook.createCellStyle();
Font bodyFont = workbook.createFont();
bodyFont.setFontName("微软雅黑");
//bodyFont.setColor(IndexedColors.BLUE.index);
bodyFont.setFontHeightInPoints((short)12);
bodyStyle.setFont(bodyFont);
// 编辑表格体数据
for (int i = 0; i < resources.size(); i++) {
// 获取行数据
String[] temp = resources.get(i);
// 创建行
Row bodyRow = sheet.createRow(i + 2);
for (int cellNum = 0; cellNum < temp.length; cellNum++) {
Cell bodyCell = bodyRow.createCell(cellNum);
bodyCell.setCellStyle(bodyStyle);
bodyCell.setCellValue(temp[cellNum]);
}
}
sheet.getRow(0).setHeightInPoints(24);
sheet.getRow(1).setHeightInPoints(20);
}
}
下面说一下多个sheet页创建失败的原因:
当你在写完这个方法之后如果直接写入write(out)的话,就是永远只创建一个sheet
所以要在你执行多次之后再写出write(out)才可以
java poi 只能创建?,JAVA POI创建多个sheet的Excel文件,及多个sheet也创建失败原因相关推荐
- c语言创建excel文件6,怎么利用c语言创建excel文件
怎么利用c语言创建excel文件 想要利用c语言创建excel文件再把它导入excel其实很简单,如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件.CSV格式的文件可以用OfficeExcel ...
- java poi 如何合并多个sheet 为一个sheet_Java POI组件实现多个Excel文件整合成一个多Sheet的Excel文件...
代码: package com.weichai; import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...
- 学完Java后只能做Java程序员吗 求职方向有哪些呢
现如今Java技术已经无处不在,无论是手机软件.手机Java游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发网站. 那么问题来了!学完Java后你 ...
- POI 复制不同Sheet合成Excel文件,完美解决单元格样式和角标问题
项目背景: 1.需要从不同的Excel模板中读取Sheet,生成到汇总的Excel文件中 2.Excel格式是 Office2007版本,xlsx格式 3.需要将模板文件的内容和格式,拷贝到新的文件 ...
- 怎么向java窗口中插入XSL表_Java向word中插入Excel文件对象
前言: 在word文件中,虽然也有表格.但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中. ...
- java邮件中添加excel_Java以邮件附件的方式发送excel文件
思路:Java创建Excel,返回一个ByteArrayOutputStream 流 ==> sendEmail()接受ByteArrayOutputStream 流以附件的形式发送出去 ...
- poi的sax模式读取xls_POI SAX 如何修改大excel 文件内容-问答-阿里云开发者社区-阿里云...
I think POI is using too much memory! What can I do?This one comes up quite a lot, but often the rea ...
- java的poi导出Excel文件
首先创建 实体类: package cn.temptation.domain;import java.util.Date;import com.fasterxml.jackson.annotation ...
- Java导出excel文件
需求 将每个xmpp机房的在线/离线用户信息导出到Excel表格中(定时任务+网页按钮),并在网页上提供下载按钮进行下载. 效果预览 导出文件效果 点击下载弹出框效果 代码总览 /** ". ...
最新文章
- 深圳大学 c语言,深圳大学C语言实验(3页)-原创力文档
- 画一个空心圆_用SolidWorks画一个空心挂钩,这种画法稍微有点麻烦
- 模板引擎——Thymeleaf
- Nutch爬虫解决页面相对路径问题
- Linux中的基础IO(一)
- 每日 30 秒 ⏱ HTML Cosplay
- 本页由试用版打印控件lodop6.2.6输出_Visual Basic 6.0 Sirk 迷你版
- Django - - - -视图层之视图函数(views)
- win10--vs2015--libjpeg--64位库的编译过程记录
- 【英语学习】【WOTD】orthography 释义/词源/示例
- C#从数据库导出数据到CSV
- 拉普拉斯定理_拉普拉斯妖:通晓宇宙一切,深知过去未来,最终被量子力学终结!...
- C#通用类库--数字转为人民币汉字大写表示
- ant design table column 设置width不生效解决方案
- tray filled with nike air max light snacks
- MSRCR(Multi-Scale Retinex with Color Restore)
- 【IPC通信】基于管道的popen和pclose函数
- 如何把50多张jpg图片合成一张PDF图片?——下载了破解版PS也不怎么会用的傻瓜极简做法用Word一招解决
- Spring MVC 详解
- 时间格式转化日期比较指定日期YY-MM 的前某个月
热门文章
- leetcode 441. 排列硬币(Java版)
- nodejs中的文件系统
- JDK8中的新时间API:Duration Period和ChronoUnit介绍
- java安全编码指南之:输入校验
- C/C++多个链接库含有同名函数,编译会报错吗
- 关于Arrays类中toArray方法的总结
- python pip国内源_Python 修改pip源为国内源
- GTS--阿里巴巴分布式事务全新解决方案
- Effective Java之利用有限制通配符提升API的灵活性(二十八)
- JavaScript的运动 —— 缓冲运动及其应用篇