最近写一个生成多个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也创建失败原因相关推荐

  1. c语言创建excel文件6,怎么利用c语言创建excel文件

    怎么利用c语言创建excel文件 想要利用c语言创建excel文件再把它导入excel其实很简单,如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件.CSV格式的文件可以用OfficeExcel ...

  2. java poi 如何合并多个sheet 为一个sheet_Java POI组件实现多个Excel文件整合成一个多Sheet的Excel文件...

    代码: package com.weichai; import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

  3. 学完Java后只能做Java程序员吗 求职方向有哪些呢

    现如今Java技术已经无处不在,无论是手机软件.手机Java游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发网站. 那么问题来了!学完Java后你 ...

  4. POI 复制不同Sheet合成Excel文件,完美解决单元格样式和角标问题

    项目背景: 1.需要从不同的Excel模板中读取Sheet,生成到汇总的Excel文件中 2.Excel格式是 Office2007版本,xlsx格式 3.需要将模板文件的内容和格式,拷贝到新的文件 ...

  5. 怎么向java窗口中插入XSL表_Java向word中插入Excel文件对象

    前言: 在word文件中,虽然也有表格.但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中. ...

  6. java邮件中添加excel_Java以邮件附件的方式发送excel文件

    思路:Java创建Excel,返回一个ByteArrayOutputStream 流   ==>   sendEmail()接受ByteArrayOutputStream 流以附件的形式发送出去 ...

  7. 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 ...

  8. java的poi导出Excel文件

    首先创建 实体类: package cn.temptation.domain;import java.util.Date;import com.fasterxml.jackson.annotation ...

  9. Java导出excel文件

    需求 将每个xmpp机房的在线/离线用户信息导出到Excel表格中(定时任务+网页按钮),并在网页上提供下载按钮进行下载. 效果预览 导出文件效果 点击下载弹出框效果 代码总览 /** ". ...

最新文章

  1. 深圳大学 c语言,深圳大学C语言实验(3页)-原创力文档
  2. 画一个空心圆_用SolidWorks画一个空心挂钩,这种画法稍微有点麻烦
  3. 模板引擎——Thymeleaf
  4. Nutch爬虫解决页面相对路径问题
  5. Linux中的基础IO(一)
  6. 每日 30 秒 ⏱ HTML Cosplay
  7. 本页由试用版打印控件lodop6.2.6输出_Visual Basic 6.0 Sirk 迷你版
  8. Django - - - -视图层之视图函数(views)
  9. win10--vs2015--libjpeg--64位库的编译过程记录
  10. 【英语学习】【WOTD】orthography 释义/词源/示例
  11. C#从数据库导出数据到CSV
  12. 拉普拉斯定理_拉普拉斯妖:通晓宇宙一切,深知过去未来,最终被量子力学终结!...
  13. C#通用类库--数字转为人民币汉字大写表示
  14. ant design table column 设置width不生效解决方案
  15. tray filled with nike air max light snacks
  16. MSRCR(Multi-Scale Retinex with Color Restore)
  17. 【IPC通信】基于管道的popen和pclose函数
  18. 如何把50多张jpg图片合成一张PDF图片?——下载了破解版PS也不怎么会用的傻瓜极简做法用Word一招解决
  19. Spring MVC 详解
  20. 时间格式转化日期比较指定日期YY-MM 的前某个月

热门文章

  1. leetcode 441. 排列硬币(Java版)
  2. nodejs中的文件系统
  3. JDK8中的新时间API:Duration Period和ChronoUnit介绍
  4. java安全编码指南之:输入校验
  5. C/C++多个链接库含有同名函数,编译会报错吗
  6. 关于Arrays类中toArray方法的总结
  7. python pip国内源_Python 修改pip源为国内源
  8. GTS--阿里巴巴分布式事务全新解决方案
  9. Effective Java之利用有限制通配符提升API的灵活性(二十八)
  10. JavaScript的运动 —— 缓冲运动及其应用篇