`
witchlovelearning
  • 浏览: 4128 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

poi 定制excel

阅读更多
定制03excel文件,并设置打印格式 附件为poijar包支持excel03、07 word03及源代码文件

@param columnNameStr 示例 元素为列名称及列宽

String []columnNameStr = {"序号,4","单位名称,11","姓名,6","性别,5",
"出生日期(年月日),8","test1,4","tets2,4",
"test3,5","test4,8","审批日期,8",
"金额,4","上报人,5","经办人,5","资金来源,4",
"困难类型,4","备注,11","身份证号,17"};

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

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.HSSFPrintSetup;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class DatatoExcel {

/**
* @param sheetName 工作簿的名称String
* @param columnNameStr String型数组,存储列名称及列宽数组    String[]
* @param valuelist 其元素为一行中各个单元格的值组成的string型list    List
* @param fileUrl excel文件存储名称及路径  例:"E:\\person.xls"    String
* @return success 0表示因为文件已存在,1表示输出到excel失败,2表示操作成功
*/
//表格定制
@SuppressWarnings("deprecation")
public  static int create03ExcelWrite(
String sheetName,
String [] columnNameStr,
List<List<String>> valueList,
String fileUrl) throws Exception{
int success = 2;
File file = new File(fileUrl);
if(file.exists()){
System.out.println("文件已存在") ;
success = 0;
}
else{
final int columnNum = columnNameStr.length; //总列数
int rowNum = 0;

// 创建Excel文档
HSSFWorkbook wb = new HSSFWorkbook() ;
HSSFSheet sheet = wb.createSheet(sheetName) ;

//定制表头字体字号
HSSFFont font_head=wb.createFont();
font_head.setFontName("宋体");
font_head.setFontHeightInPoints((short)9);
font_head.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗

//定制内容字体字号
HSSFFont font_context=wb.createFont();
font_context.setFontName("宋体");
font_context.setFontHeightInPoints((short)9);

HSSFCellStyle style_head = wb.createCellStyle();
style_head.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中
style_head.setFont(font_head);
style_head.setWrapText(true);//自动换行

HSSFCellStyle style_context = wb.createCellStyle();
style_context.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中
style_context.setFont(font_context);
style_context.setWrapText(true);//自动换行

HSSFRow firstrow = sheet.createRow(0);
firstrow.setHeightInPoints(30);//设置行高
HSSFCell[] firstColumnCell = new HSSFCell[columnNum];

if(fileUrl != null){
//表格头单元赋值
for(int i= 0; i<columnNum; i++){
String[] value = columnNameStr[i].split(",");
firstColumnCell[i] = firstrow.createCell((short)i);
firstColumnCell[i].setCellValue(value[0]);
firstColumnCell[i].setCellStyle(style_head);
sheet.setColumnWidth(i,  new Integer(value[1])*333);  //设置宽度
System.out.println(value[0]) ;
}
rowNum ++;

//填充记录
for(List<String> rowValue :valueList){

HSSFRow row = sheet.createRow(rowNum) ; // 下标为1的行开始
row.setHeightInPoints(15);//设置行高
row.createCell((short) 0).setCellValue(rowNum);//序号列的值
int j = 1;
for(String cellValue :rowValue){
cellValue += "";
HSSFCell cell = row.createCell((short) j) ;
cell.setCellValue(new HSSFRichTextString(cellValue)) ;
cell.setCellStyle(style_context);
j ++ ;
System.out.println(cellValue) ;
}
rowNum ++;
}

//设置打印格式
wb.setPrintArea(0, 0, columnNum-3, 0, rowNum-1);//设置打印区域
wb.setRepeatingRowsAndColumns(0, -1, -1, 0, 0);//设置每页的表头
sheet.setPrintGridlines(true);//全框打印
sheet.setRowBreak(25);//每页显示25条记录
sheet.setColumnHidden(columnNum-2, true);//设置打印隐藏域
sheet.setColumnHidden(columnNum-1, true);//设置打印隐藏域
HSSFPrintSetup print = sheet.getPrintSetup();
print.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE);//纸张类型:A4打印
print.setLandscape(true);//打印方向:横向打印

// 创建文件输出流,准备输出电子表格
try{
OutputStream out = new FileOutputStream(fileUrl) ;
wb.write(out) ;
out.close() ;
success = 2;
System.out.println("数据导入到excel成功") ;

}catch(Exception e){
e.printStackTrace();
success = 1;
}
}
}
return success;
}
}
[align=left][/align]
分享到:
评论

相关推荐

    用POI实现excel表格的定制化和模板化开发

    1. 该工具的目的在于支持excel表格的定制化开发,提供了基本默认样式类、以及公共模板类,加速不同样式表格的生成,很适合表格复杂多变的场景; 2. 数据、样式、excel模板分离,可分别配置,可任意组合复用; 3. ...

    poi操作excel,word文件

    poi操作excel,word文件,office2003及office2007以上都支持,程序利用poi可提取word文档及excel文档内容生成txt文件,程序中对poi类有定制化改写。

    java使用poi操作excel和word

    用于java使用poi技术,读取word文档,和生成excel表格

    poi最新版本及收集的帮助资料

    java的POI操作Excel文件.doc POI_API帮助文档.chm poi-bin-3.9-20121203.tar.gz poi帮助.docx POI中文帮助文档.pdf poi中文教程.doc第一章 POI简介 实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为...

    examples.rar

    在开发中我们经常会碰到要将数据导出为excel表的需求,列如导出公司的订单信息表,业绩表,某某信息确认表等等,此类表格又需要按照相关人员的Excel的格式进行定制化导出:列如表头增加日期,增加制表人等等,此资源...

    毕业设计基于springboot+vue的智慧小区管理系统源码+数据库+使用文档.zip

    利用Apache poi进行excel表格的读写操作,实现数据导入导出处理 基于springboot+vue的智慧小区管理系统源码+数据库(毕业设计).zip基于springboot+vue的智慧小区管理系统源码+数据库(毕业设计).zip基于...

    基于springboot+vue的智慧小区管理系统源码+数据库(毕业设计).zip

    利用Apache poi进行excel表格的读写操作,实现数据导入导出处理 基于springboot+vue的智慧小区管理系统源码+数据库(毕业设计).zip基于springboot+vue的智慧小区管理系统源码+数据库(毕业设计).zip基于...

    Java毕业设计-JAVA办公自动化系统(源代码+论文+外文翻译).rar

    3. **Apache POI**:一个用于操作Microsoft Office文档的Java库,支持创建、读取和修改Excel、Word、PowerPoint等文件。 4. **Quartz**:一个功能丰富的任务调度库,支持定时任务、集群和持久化。 5. **Redis**:一...

    请假系统_管理系统_邮件_微信企业号定时通知及快捷审批.rar

    独立开发给企业私人定制的一个请假系统,亮点: 流程、Excel批量导入导出、邮件/微信企业号定时通知及快捷审批. 前端架构:jQuery、Bootstrap 后端架构:jfinal、POI、Java Mail、dom4j、fastjson、Mysql

Global site tag (gtag.js) - Google Analytics