工程开工令gd22021928这些表格在哪儿下砸i

10、借助POI实现Java生成并打印excel报表(1)
10.1、了解&Apache&POI
& & & 实际开发中,用到最多的是把数据库中数据导出生成报表,尤其是在生产管理或者财务系统中用的非常普遍。生成报表格式一般是EXCEL或者PDF&。利用Apache&&POI实现数据库中数据导出生成excel报表。在java众多数据导出excel报表的第三方jar包中POI相对来说比较好用。
& & & Apache&POI&是用Java编写的免费开源的跨平台 API,给Java提供对Microsoft&Office格式档案读和写的功能,创建和维护操作各种符合Office&Open&XML(OOXML)标准和微软的OLE2复合文档格式(OLE2)。借助POI,Java可以读取、创建和修改MS&Excel文件、MS&Word文件及MSPowerPoint文件,其中office均可以。下面是Apache&POI&中提供的几大部分的作用:
& & & & & & & & & & & & & & &HSSF&-&提供读写Microsoft&Excel&XLS格式档案的功能。
& & & & & & & & & & & & & & &HSSF&-&提供读写Microsoft&Excel&XLS格式档案的功能。
& & & & & & & & & & & & & & &XSSF&-&提供读写Microsoft&Excel&OOXML&XLSX格式档案的功能。
& & & & & & & & & & & & & & &HWPF&-&提供读写Microsoft&Word&DOC格式档案的功能。
& & & & & & & & & & & & & & &HSLF&-&提供读写Microsoft&PowerPoint格式档案的功能。
& & & & & & & & & & & & & & &HDGF&-&提供读Microsoft&Visio格式档案的功能。
& & & & & & & & & & & & & & &HPBF&-&提供读Microsoft&Publisher格式档案的功能。
& & & & & & & & & & & & & & &HSMF&-&提供读Microsoft&Outlook格式档案的功能。
创建一个excel报表步骤:& & & & & & & & &&
1.&创建新的Excel工作薄
HSSFWorkbook&workbook&=&new&HSSFWorkbook();
在Excel工作簿中建一,其名为。POI中还提供了其他的一些workbook&构造方法。
2.创建一个工作表。新建一名为"工资表"的工作表:  
HSSFSheet&sheet&=&workbook.createSheet("工资表");&
3.创建行。在索引0的位置创建行(最顶端的行):  
HSSFRow&row&=&sheet.createRow(0);
4.创建单元格。在索引0的位置创建(左上端):  
HSSFCell&cell&=&row.createCell((short)&0);
& & & & & & 定义单元格为字符串类型(也可在创建单元格里面设置):
cell.setCellType(HSSFCell.CELL_TYPE_STRING);&
& & & & & & 在单元格中输入一些内容: 
cell.setCellValue("增加值");&
5.新建一输出文件流,把相应的Excel工作簿输出到本地
FileOutputStream&fOut&=&new&FileOutputStream(outputFile);
workbook.write(fOut);
fOut.flush();
& & & & & & &操作结束,关闭文件
fOut.close();&
&&在给单元格设置下从数据库中读取的数据。这样就可以把数据库里面的内容导入到excel了。
10.2、常用方法列举:
对象种类:
HSSFWorkbook&excell的文档对象&
HSSFSheet&excell的表单
HSSFRow&excell的行
HSSFCell&excell的格子单元
HSSFFont&excell字体
HSSFName&名称
HSSFDataFormat&日期格式&
常用方法:
1.合并单元格
&sheet.addMergedRegion(new Region(beginRowIndex&, (short)&beginColumnIndex&,&endRowIndex&, (short)&endColumnIndex&));
即从A行的B列,合并到C行的D列。可以理解为一块面积。
2.设置页脚
HSSFFooter foot = sheet.getFooter();
foot.setLeft("左边文字:");
foot.setCenter("中间文字:");
foot.setRight(HSSFFooter.page()+"/"+HSSFFooter.numPages());//显示的为:当前页/总页数。如:1/3
3.生成Excel的思想
灵活应用java提供的数据结构(List,Map,Set)。通常习惯把每个sheet定义为一个Map元素.即:
Map&sheet名,数据集合&.& 至于数据集合,则可根据实际情况组成相应的数据结构。总之,灵活应用数据结构:&生成Excel的逻辑可扩展性相当好,而且扩展起来甚是方便,并可以在一定程序上实现Excel的动态化。
样式示例:(整数型、浮点型、布尔型、字符串型、日期格式、中西文结合式)
1 import org.apache.poi.hssf.usermodel.*;
2 import java.io.FileOutputS
3 import java.io.IOE
4 publicclass CreateCells
6 publicstaticvoid main(String[] args)
7 throws IOException
9 HSSFWorkbook wb = new HSSFWorkbook();//建立新HSSFWorkbook对象
10 HSSFSheet sheet = wb.createSheet("new sheet");//建立新的sheet对象
11 // Create a row and put some cells in it. Rows are 0 based.
12 HSSFRow row = sheet.createRow((short)0);//建立新行
13 // Create a cell and put a value in it.
14 HSSFCell cell = row.createCell((short)0);//建立新cell
15 cell.setCellValue(1);//设置cell的整数类型的值
16 // Or do it on one line.
17 row.createCell((short)1).setCellValue(1.2);//设置cell浮点类型的值
18 row.createCell((short)2).setCellValue("test");//设置cell字符类型的值
19 row.createCell((short)3).setCellValue(true);//设置cell布尔类型的值
20 HSSFCellStyle cellStyle = wb.createCellStyle();//建立新的cell样式
21 cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));//设置cell样式为定制的日期格式
22 HSSFCell dCell =row.createCell((short)4);
23 dCell.setCellValue(new Date());//设置cell为日期类型的值
24 dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式
25 HSSFCell csCell =row.createCell((short)5);
26 csCell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置cell编码解决中文高位字节截断
27 csCell.setCellValue("中文测试_Chinese Words Test");//设置中西文结合字符串
28 row.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_ERROR);//建立错误cell
29 // Write the output to a file
30 FileOutputStream fileOut = new FileOutputStream("workbook.xls");
31 wb.write(fileOut);
32 fileOut.close();
10.3、程序模块
&在表格中间插入创建行:
public void createNewRow(){
//下移行的条件有2个:当前行非初始行,且当前行没有超过最后一行
if(this.currRowIndex!=this.initRowIndex && this.lastRowIndex&this.currRowIndex){
//将指定的几行进行下移一行
sheet.shiftRows(this.currRowIndex, this.lastRowIndex, 1, true, true);
//既然下移了那么最后一行下标就也要增大了
this.lastRowIndex++;
//在指定的行上创建一个空行(如果此行原本有单元格和数据,那么也会被空行覆盖,且创建出来的空行是没有单元格的)
this.currRow = sheet.createRow(this.currRowIndex);
this.currRow.setHeightInPoints(this.defaultRowHeight);
this.currRowIndex++;
this.currColIndex = this.initColI
单元格前(背)景色、(顶底左右)边框及颜色、位置样式设置:
* 样式设置
public static HSSFCellStyle createCellStyle(HSSFWorkbook workbook){
// *生成一个样式
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
style.setFillBackgroundColor(HSSFColor.GREEN.index);
// 填充样式
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
// 设置底边框
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
// 设置底边框颜色
style.setBottomBorderColor(HSSFColor.BLACK.index);
// 设置左边框
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
// 设置左边框颜色
style.setLeftBorderColor(HSSFColor.BLACK.index);
// 设置右边框
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
// 设置右边框颜色
style.setRightBorderColor(HSSFColor.BLACK.index);
// 设置顶边框
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
// 设置顶边框颜色
style.setTopBorderColor(HSSFColor.BLACK.index);
// 设置自动换行
style.setWrapText(false);
// 设置水平对齐的样式为居中对齐
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置垂直对齐的样式为居中对齐
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFont font = createCellFont(workbook);
// 把字体应用到当前的样式
style.setFont(font);
单元格字体样式设置:
* 字体设置
public static HSSFFont createCellFont(HSSFWorkbook workbook){
// *生成一个字体
HSSFFont font = workbook.createFont();
// 字体颜色
font.setColor(HSSFColor.VIOLET.index);
// 字体大小
font.setFontHeightInPoints((short) 12);
// 字体加粗
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 是否使用斜体
font.setItalic( true );
// 是否使用划线
//font.setStrikeout(true);
// 字体名字
font.setFontName( " 黑体 " );
保留小数位数样式设置:
* 保留2位小数
HSSFCellStyle cellStyle = workbook.createCellStyle();
Short doubleFormat = workbook.createDataFormat().getFormat("0.00");
cellStyle.setDataFormat(doubleFormat);
cellStyle.setDataFormat(doubleFormat);
注释设置:
* 注释设置
4 public static HSSFComment createCellComment(HSSFPatriarch patriarch, String commentText, String commentName){
// *添加单元格注释
// 定义注释的大小和位置,详见文档
HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 2, 2));
// 设置注释内容
comment.setString(new HSSFRichTextString(commentText));
// 设置注释作者,当鼠标移动到单元格上是可以在状态栏中看到该内容.
comment.setAuthor(commentName);
图片插入设置:
* 图片插入
public static void createCellPicture(HSSFWorkbook workbook, HSSFPatriarch patriarch, String url, int col, int row) throws Exception{
//先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
BufferedImage bufferImg =null;
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File( url ));
ImageIO.write(bufferImg,"jpg",byteArrayOut);
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0,, (short) col, row, (short) col, row);
anchor.setAnchorType(3);
//插入图片
patriarch.createPicture(anchor , workbook.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
byteArrayOut.flush();
byteArrayOut.close();
10.4、实例:
报表生成类:ComplexExportExcelClient.java
1 package com.bzu.search.
3 import java.util.ArrayL
4 import java.util.L
6 import org.apache.poi.hssf.usermodel.HSSFC
7 import org.apache.poi.hssf.usermodel.HSSFCellS
8 import org.apache.poi.hssf.usermodel.HSSFF
9 import org.apache.poi.hssf.usermodel.HSSFRichTextS
10 import org.apache.poi.hssf.usermodel.HSSFR
11 import org.apache.poi.hssf.usermodel.HSSFS
12 import org.apache.poi.hssf.usermodel.HSSFW
13 import org.apache.poi.hssf.util.R
* 拒绝件报表生成类.
* @author caoyb
* @version $Revision:$
21 public class ComplexExportExcelClient {
private static HSSFWorkbook wb = new HSSFWorkbook();
private static HSSFSheet sheet = wb.createSheet();
@SuppressWarnings({ "unchecked", "deprecation" })
public static void main(String[] args) {
ExportExcel exportExcel = new ExportExcel(wb, sheet);
// 创建列标头LIST
List fialList = new ArrayList();
fialList.add("申请人未提供任何联系方式");
fialList.add("无工作单位信息且未提供收入来源信息");
fialList.add("有工作单位但未提供单位地址或电话");
fialList.add("家庭地址缺失");
fialList.add("客户身份证明资料缺");
fialList.add("签名缺失或签名不符合要求");
fialList.add("其它");
List errorList = new ArrayList();
errorList.add("客户主动取消");
errorList.add("个人征信不良");
errorList.add("欺诈申请");
errorList.add("申请人基本条件不符");
errorList.add("申请材料不合规");
errorList.add("无法正常完成征信");
errorList.add("重复申请");
errorList.add("其他");
// 计算该报表的列数
int number = 2 + fialList.size() * 2 + errorList.size() * 2;
// 给工作表列定义列宽(实际应用自己更改列数)
for (int i = 0; i & i++) {
sheet.setColumnWidth(i, 3);
// 创建单元格样式
HSSFCellStyle cellStyle = wb.createCellStyle();
// 指定单元格居中对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 指定单元格垂直居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 指定当单元格内容显示不下时自动换行
cellStyle.setWrapText(true);
// 设置单元格字体
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setFontHeight((short) 200);
cellStyle.setFont(font);
// 创建报表头部
exportExcel.createNormalHead("南京地区申请资料拒件分析统计", number);
// 设置第二行
String[] params = new String[] { "
exportExcel.createNormalTwoRow(params, number);
// 设置列头
HSSFRow row2 = sheet.createRow(2);
HSSFCell cell0 = row2.createCell(0);
cell0.setCellStyle(cellStyle);
cell0.setCellValue(new HSSFRichTextString("机构代码"));
HSSFCell cell1 = row2.createCell(1);
cell1.setCellStyle(cellStyle);
cell1.setCellValue(new HSSFRichTextString("支行名称"));
HSSFCell cell2 = row2.createCell(2);
cell2.setCellStyle(cellStyle);
cell2.setCellValue(new HSSFRichTextString("无效件"));
HSSFCell cell3 = row2.createCell(2 * fialList.size() + 2);
cell3.setCellStyle(cellStyle);
cell3.setCellValue(new HSSFRichTextString("拒绝件"));
HSSFRow row3 = sheet.createRow(3);
// 设置行高
row3.setHeight((short) 800);
HSSFCell row3Cell = null;
int m = 0;
int n = 0;
// 创建不同的LIST的列标题
for (int i = 2; i & i = i + 2) {
if (i & 2 * fialList.size() + 2) {
row3Cell = row3.createCell(i);
row3Cell.setCellStyle(cellStyle);
row3Cell.setCellValue(new HSSFRichTextString(fialList.get(m)
.toString()));
row3Cell = row3.createCell(i);
row3Cell.setCellStyle(cellStyle);
row3Cell.setCellValue(new HSSFRichTextString(errorList.get(n)
.toString()));
// 创建最后一列的合计列
row3Cell = row3.createCell(number);
row3Cell.setCellStyle(cellStyle);
row3Cell.setCellValue(new HSSFRichTextString("合计"));
// 合并单元格
HSSFRow row4 = sheet.createRow(4);
// 合并第一列的 第三行到第五行
sheet.addMergedRegion(new Region(2, (short) 0, 4, (short) 0));
// 合并第二行的 第三行到第五行
sheet.addMergedRegion(new Region(2, (short) 1, 4, (short) 1));
// 合并第三行的
第三列到第AA指定的列
int aa = 2 * fialList.size() + 1;
sheet.addMergedRegion(new Region(2, (short) 2, 2, (short) aa));
int start = aa + 1;
sheet.addMergedRegion(new Region(2, (short) start, 2,
(short) (number - 1)));
// 循环合并第四行的行,并且是每2列合并成一列
for (int i = 2; i & i = i + 2) {
sheet.addMergedRegion(new Region(3, (short) i, 3, (short) (i + 1)));
// 根据列数奇偶数的不同创建不同的列标题
for (int i = 2; i & i++) {
if (i & 2 * fialList.size() + 2) {
if (i % 2 == 0) {
HSSFCell cell = row4.createCell(i);
cell.setCellStyle(cellStyle);
cell.setCellValue(new HSSFRichTextString("无效量"));
HSSFCell cell = row4.createCell(i);
cell.setCellStyle(cellStyle);
cell.setCellValue(new HSSFRichTextString("占比"));
if (i % 2 == 0) {
HSSFCell cell = row4.createCell(i);
cell.setCellStyle(cellStyle);
cell.setCellValue(new HSSFRichTextString("拒绝量"));
HSSFCell cell = row4.createCell(i);
cell.setCellStyle(cellStyle);
cell.setCellValue(new HSSFRichTextString("占比"));
// 循环创建中间的单元格的各项的值
for (int i = 5; i & i++) {
HSSFRow row = sheet.createRow((short) i);
for (int j = 0; j &= j++) {
exportExcel
.cteateCell(wb, row, (short) j,
HSSFCellStyle.ALIGN_CENTER_SELECTION, String
.valueOf(j));
// 创建最后一行的合计行
String[] cellValue = new String[number - 1];
for (int i = 0; i & number - 1; i++) {
cellValue[i] = String.valueOf(i);
exportExcel.createLastSumRow(1, cellValue);
exportExcel.outputExcel("c:\\拒绝件统计.xls");
EXCEL报表工具类:ExportExcel.java
1 package com.bzu.search.
3 import java.io.F
4 import java.io.FileNotFoundE
5 import java.io.FileOutputS
6 import java.io.IOE
8 import org.apache.poi.hssf.usermodel.HSSFC
9 import org.apache.poi.hssf.usermodel.HSSFCellS
10 import org.apache.poi.hssf.usermodel.HSSFF
11 import org.apache.poi.hssf.usermodel.HSSFRichTextS
12 import org.apache.poi.hssf.usermodel.HSSFR
13 import org.apache.poi.hssf.usermodel.HSSFS
14 import org.apache.poi.hssf.usermodel.HSSFW
15 import org.apache.poi.hssf.util.HSSFC
16 import org.apache.poi.hssf.util.R
* EXCEL报表工具类.
* @author caoyb
* @version $Revision:$
24 public class ExportExcel {
private HSSFWorkbook wb = null;
private HSSFSheet sheet = null;
* @param wb
* @param sheet
public ExportExcel(HSSFWorkbook wb, HSSFSheet sheet) {
this.sheet =
* @return the sheet
public HSSFSheet getSheet() {
* @param sheet
the sheet to set
public void setSheet(HSSFSheet sheet) {
this.sheet =
* @return the wb
public HSSFWorkbook getWb() {
* @param wb
the wb to set
public void setWb(HSSFWorkbook wb) {
* 创建通用EXCEL头部
* @param headString
头部显示的字符
* @param colSum
该报表的列数
public void createNormalHead(String headString, int colSum) {
HSSFRow row = sheet.createRow(0);
// 设置第一行
HSSFCell cell = row.createCell(0);
row.setHeight((short) 400);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(new HSSFRichTextString("南京城区各网点进件统计报表"));
// 指定合并区域
sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) colSum));
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(true);// 指定单元格自动换行
// 设置单元格字体
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setFontHeight((short) 300);
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
* 创建通用报表第二行
* @param params
统计条件数组
* @param colSum
需要合并到的列索引
public void createNormalTwoRow(String[] params, int colSum) {
HSSFRow row1 = sheet.createRow(1);
row1.setHeight((short) 300);
HSSFCell cell2 = row1.createCell(0);
cell2.setCellType(HSSFCell.ENCODING_UTF_16);
cell2.setCellValue(new HSSFRichTextString("统计时间:" + params[0] + "至"
+ params[1]));
// 指定合并区域
sheet.addMergedRegion(new Region(1, (short) 0, 1, (short) colSum));
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(true);// 指定单元格自动换行
// 设置单元格字体
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setFontHeight((short) 250);
cellStyle.setFont(font);
cell2.setCellStyle(cellStyle);
* 设置报表标题
* @param columHeader
标题字符串数组
public void createColumHeader(String[] columHeader) {
// 设置列头
HSSFRow row2 = sheet.createRow(2);
// 指定行高
row2.setHeight((short) 600);
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(true);// 指定单元格自动换行
// 单元格字体
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setFontHeight((short) 250);
cellStyle.setFont(font);
* cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单无格的边框为粗体
* cellStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.
* cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
* cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
* cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
* cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
* cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
* cellStyle.setTopBorderColor(HSSFColor.BLACK.index);
// 设置单元格背景色
cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFCell cell3 = null;
for (int i = 0; i & columHeader. i++) {
cell3 = row2.createCell(i);
cell3.setCellType(HSSFCell.ENCODING_UTF_16);
cell3.setCellStyle(cellStyle);
cell3.setCellValue(new HSSFRichTextString(columHeader[i]));
* 创建内容单元格
* @param wb
HSSFWorkbook
* @param row
* @param col
short型的列索引
* @param align
* @param val
public void cteateCell(HSSFWorkbook wb, HSSFRow row, int col, short align,
String val) {
HSSFCell cell = row.createCell(col);
cell.setCellType(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(new HSSFRichTextString(val));
HSSFCellStyle cellstyle = wb.createCellStyle();
cellstyle.setAlignment(align);
cell.setCellStyle(cellstyle);
* 创建合计行
* @param colSum
需要合并到的列索引
* @param cellValue
public void createLastSumRow(int colSum, String[] cellValue) {
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(true);// 指定单元格自动换行
// 单元格字体
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setFontHeight((short) 250);
cellStyle.setFont(font);
HSSFRow lastRow = sheet.createRow((short) (sheet.getLastRowNum() + 1));
HSSFCell sumCell = lastRow.createCell(0);
sumCell.setCellValue(new HSSFRichTextString("合计"));
sumCell.setCellStyle(cellStyle);
sheet.addMergedRegion(new Region(sheet.getLastRowNum(), (short) 0,
sheet.getLastRowNum(), (short) colSum));// 指定合并区域
for (int i = 2; i & (cellValue.length + 2); i++) {
sumCell = lastRow.createCell(i);
sumCell.setCellStyle(cellStyle);
sumCell.setCellValue(new HSSFRichTextString(cellValue[i - 2]));
* 输入EXCEL文件
* @param fileName
public void outputExcel(String fileName) {
FileOutputStream fos = null;
fos = new FileOutputStream(new File(fileName));
wb.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
&运行上述两段代码你就会在c盘的根目录下看到一个拒绝件统计.xls文件
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
11.POI打印功能 11.1.常用模块形式: 1 HSSFPrintSetup printSetup = sheet.getPrintSetup(); 2 printSetup.setVResolution((short) 600); //打印质量600点 3 printSetup.setPaperSize(HSSFPrintSetup.A4_PAPERS ...
Java生成和操作Excel文件 - 残星 - 博客园 (2) JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API 非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通 ...
Java生成和操作Excel文件 - 残星 - 博客园JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API 非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP. ...
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数 ...
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. ...
序言:我们在做企业项目或者一些管理系统的时候往往会用到导出到excel报表这项功能,下面我介绍的是用windows自带的excel来打印 首先必须引入:Interop.Excel.dll.Interop.Microsoft.Office.Core.dll这两个分别是microsoft对应excel的驱动 如何加如:在bin文件夹右键添加引用 选择对应的off ...
public class OutExcel { public static void OutExcel_bb(DataTable dt, string thepath, string temppath, int TitleNum, string Title1) { //通过调用Excel的查询来实现数据的导出,按固定格式 //ds:执行的记录集:thepat ...
//这个是我自己写的 public void printOrderAll() { ComThread.InitSTA(); ActiveXComponent xl = new ActiveXComponent(&Excel.Application&); String path=&E:/xxxx.xls&; try {

我要回帖

更多关于 228.28.225.220 的文章

 

随机推荐