POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
来源:互联网 发布:李炎恢php第一季讲义 编辑:程序博客网 时间:2024/05/17 22:57
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:
先获取工作薄对象:
一、设置背景色:
二、设置边框:
三、设置居中:
四、设置字体:
五、设置列宽:
六、设置自动换行:
七、合并单元格:
附一个完整的例子:
先获取工作薄对象:
Java代码
- HSSFWorkbook
wb new= HSSFWorkbook(); -
- HSSFSheet
sheet = wb.createSheet(); -
- HSSFCellStyle
setBorder = wb.createCellStyle();
一、设置背景色:
Java代码
- setBorder.setFillForegroundColor((short)
13);// 设置背景色 - setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
二、设置边框:
Java代码
- setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN);
//下边框 - setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
- setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
- setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
三、设置居中:
Java代码
- setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 居中
四、设置字体:
Java代码
- HSSFFont
font = wb.createFont(); - font.setFontName("黑体");
- font.setFontHeightInPoints((short)
16);//设置字体大小 -
- HSSFFont
font2 = wb.createFont(); - font2.setFontName("仿宋_GB2312");
- font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
- font2.setFontHeightInPoints((short)
12); -
- setBorder.setFont(font);//选择需要用到的字体格式
五、设置列宽:
Java代码
- sheet.setColumnWidth(0,
3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值
六、设置自动换行:
Java代码
- setBorder.setWrapText(true);//设置自动换行
七、合并单元格:
Java代码
- Region
region1 new= Region( 0,( short)0, 0, ( short)6); -
- //参数1:行号
参数2:起始列号 参数3:行号 参数4:终止列号 - sheet.addMergedRegion(region1);
附一个完整的例子:
Java代码
- package
cn.com.util; -
- import
org.apache.poi.hssf.usermodel.HSSFCellStyle; - import
org.apache.poi.hssf.usermodel.HSSFFont; - import
org.apache.poi.hssf.usermodel.HSSFRichTextString; - import
org.apache.poi.hssf.usermodel.HSSFWorkbook; - import
org.apache.poi.hssf.usermodel.HSSFSheet; - import
org.apache.poi.hssf.usermodel.HSSFRow; - import
org.apache.poi.hssf.usermodel.HSSFCell; - import
org.apache.poi.hssf.util.CellRangeAddress; - import
org.apache.poi.hssf.util.Region; - import
org.apache.poi.ss.usermodel.CellStyle; -
- import
java.io.FileOutputStream; -
- import
javax.servlet.http.HttpServlet; -
- public
class CreateXL extendsHttpServlet { -
- public
static String "c:\\test.xls";outputFile = -
- private
void cteateCell(HSSFWorkbook shortwb, HSSFRow row, col, String val) { - HSSFCell
cell = row.createCell(col); - //
cell.setEncoding(HSSFCell.ENCODING_UTF_16); - cell.setCellValue(val);
- HSSFCellStyle
cellstyle = wb.createCellStyle(); - cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
- cell.setCellStyle(cellstyle);
- }
-
- public
static void main(String argv[]) { - try
{ - //
创建新的Excel 工作簿 - HSSFWorkbook
workbook new= HSSFWorkbook(); -
- //
设置字体 - HSSFFont
font = workbook.createFont(); - //
font.setColor(HSSFFont.COLOR_RED); - font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
- font.setFontHeightInPoints((short)
14); -
- //
HSSFFont font2 = workbook.createFont(); - //
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); - //
font.setFontHeightInPoints((short)14); -
- //
设置样式 - HSSFCellStyle
cellStyle = workbook.createCellStyle(); - cellStyle.setFont(font);
- cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
-
- //
HSSFCellStyle cellStyle2= workbook.createCellStyle(); - //
cellStyle.setFont(font2); - //
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); -
- //
在Excel工作簿中建一工作表,其名为缺省值 - //
如要新建一名为"月报表"的工作表,其语句为: - HSSFSheet
sheet "月报表");= workbook.createSheet( - CellRangeAddress
cellRangeAddress new= CellRangeAddress( 0,0, 0, - 11);
- sheet.addMergedRegion(cellRangeAddress);
-
- //第一行
- //
在索引0的位置创建行(最顶端的行) - HSSFRow
row 0);= sheet.createRow( - //
在索引0的位置创建单元格(左上端) - HSSFCell
cell 0);= row.createCell( - //
定义单元格为字符串类型 - cell.setCellType(HSSFCell.CELL_TYPE_STRING);
- cell.setCellStyle(cellStyle);
- //
在单元格中输入一些内容 - cell.setCellValue(new
HSSFRichTextString( "北京亿卡联科技发展有限公司小区门禁维修月报表")); -
- //第二行
- cellRangeAddress
= newCellRangeAddress( 1,1, 3, 6); - sheet.addMergedRegion(cellRangeAddress);
- row
= 1);sheet.createRow( - HSSFCell
datecell 3);= row.createCell( - datecell.setCellType(HSSFCell.CELL_TYPE_STRING);
- datecell.setCellStyle(cellStyle);
- datecell.setCellValue("时间间隔xxxxx");
-
- cellRangeAddress
= newCellRangeAddress( 1,1, 9, - 10);
- sheet.addMergedRegion(cellRangeAddress);
- row.createCell(9).setCellValue("单位:元");
-
- //第三行
- row=sheet.createRow(2);
- row.createCell(0).setCellValue("一、");
- row.createCell(1).setCellValue("基本资料");
-
- //第4行
- row=sheet.createRow(3);
- row.createCell(1).setCellValue("小区名称:");
- cellRangeAddress=new
CellRangeAddress( 3,3,2,11); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(2).setCellValue("xxxxx");
-
- //第5行
- row=sheet.createRow(4);
- row.createCell(1).setCellValue("座落地点:");
- cellRangeAddress=new
CellRangeAddress( 4,4,2,11); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(2).setCellValue("xxxxx");
-
- //第6行
- row=sheet.createRow(5);
- row.createCell(1).setCellValue("建成年月:");
- cellRangeAddress=new
CellRangeAddress( 5,5,2,4); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(2).setCellValue("年月日:xxxxx");
- row.createCell(5).setCellValue("联系人");
- cellRangeAddress=new
CellRangeAddress( 5,5,6,8); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(6).setCellValue("XXX");
- row.createCell(9).setCellValue("电话");
- cellRangeAddress=new
CellRangeAddress( 5,5,10,11); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(10).setCellValue("XXX");
-
- //第7行
- row=sheet.createRow(6);
- row.createCell(1).setCellValue("住户:");
- row.createCell(2).setCellValue("(XX)");
- row.createCell(3).setCellValue("(户)");
- cellRangeAddress=new
CellRangeAddress( 6,6,4,5); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(4).setCellValue("共计(
)" - row.createCell(6).setCellValue("幢");
- cellRangeAddress=new
CellRangeAddress( 6,6,7,8); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(7).setCellValue("发卡张数");
- cellRangeAddress=new
CellRangeAddress( 6,6,9,10); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(9).setCellValue("xxxx");
-
-
- //第9行
- row=sheet.createRow(8);
- row.createCell(0).setCellValue("二、");
- cellRangeAddress=new
CellRangeAddress( 8,8,1,2); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(1).setCellValue("维修用材料台账");
- row.createCell(6).setCellValue("三、");
- cellRangeAddress=new
CellRangeAddress( 8,8,7,9); - sheet.addMergedRegion(cellRangeAddress);
- row.createCell(7).setCellValue("维修工时记录");
- //第10行
- row=sheet.createRow(9);
- row.createCell(0).setCellValue("日期");
- row.createCell(1).setCellValue("维修事项");
- row.createCell(2).setCellValue("材料清单");
- row.createCell(3).setCellValue("数量");
- row.createCell(4).setCellValue("单价");
- row.createCell(5).setCellValue("材料金额");
-
- row.createCell(7).setCellValue("日期");
- row.createCell(8).setCellValue("技工");
- row.createCell(9).setCellValue("工时数");
- row.createCell(10).setCellValue("单价");
- row.createCell(11).setCellValue("工时金额");
-
- //填充数据
- for
( inti 0;= i 10;< i++) { - row=sheet.createRow(9+i+1);
- row.createCell(0).setCellValue("日期");
- row.createCell(1).setCellValue("维修事项");
- row.createCell(2).setCellValue("材料清单");
- row.createCell(3).setCellValue("数量");
- row.createCell(4).setCellValue("单价");
- row.createCell(5).setCellValue("材料金额");
-
- row.createCell(7).setCellValue("日期");
- row.createCell(8).setCellValue("技工");
- row.createCell(9).setCellValue("工时数");
- row.createCell(10).setCellValue("单价");
- row.createCell(11).setCellValue("工时金额");
- }
-
-
- //第n+10行
- row=sheet.createRow(9+10+1);
- //cellRangeAddress=new
CellRangeAddress(19,19,0,4); - //sheet.addMergedRegion(cellRangeAddress);
- row.createCell(0).setCellValue("累计:");
- row.createCell(1).setCellValue("xxx");
- row.createCell(7).setCellValue("累计:");
- row.createCell(8).setCellValue("xxx");
-
-
-
-
- //
新建一输出文件流 - FileOutputStream
fOut new= FileOutputStream(outputFile); - //
把相应的Excel 工作簿存盘 - workbook.write(fOut);
- fOut.flush();
- //
操作结束,关闭文件 - fOut.close();
- System.out.println("文件生成...");
- }
catch (Exception e) { - System.out.println("已运行
xlCreate() : " + e); - }
- }
- }
POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
标签: POI2013-10-31 13:04 3730人阅读 评论(1)收藏举报分类:- 第一种:日期格式
- cell.setCellValue(new Date(2008,5,5));
- //set date format
- HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
- HSSFDataFormat format= demoWorkBook.createDataFormat();
- cellStyle.setDataFormat(format.getFormat("yyyy年m月d日"));
- cell.setCellStyle(cellStyle);
- 第二种:保留两位小数格式
- cell.setCellValue(1.2);
- HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
- cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
- cell.setCellStyle(cellStyle);
- 这里与上面有所不同,用的是HSSFDataFormat.getBuiltinFormat()方法,之所以用这个,是因为0.00是Excel内嵌的格式,完整的Excel内嵌格式列表大家可以看这个窗口中的自定义列表:
- 这里就不一一列出了
- 第三种:货币格式
- cell.setCellValue(20000);
- HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
- HSSFDataFormat format= demoWorkBook.createDataFormat();
- cellStyle.setDataFormat(format.getFormat("¥#,##0"));
- cell.setCellStyle(cellStyle);
- 第四种:百分比格式
- cell.setCellValue(20);
- HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
- cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%"));
- cell.setCellStyle(cellStyle);
- 此种情况跟第二种一样
- 第五种:中文大写格式
- cell.setCellValue(20000);
- HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
- HSSFDataFormat format= demoWorkBook.createDataFormat();
- cellStyle.setDataFormat(format.getFormat("[DbNum2][$-804]0"));
- cell.setCellStyle(cellStyle);
- 第六种:科学计数法格式
- cell.setCellValue(20000);
- HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
- cellStyle.setDataFormat( HSSFDataFormat.getBuiltinFormat("0.00E+00"));
- cell.setCellStyle(cellStyle);
- 此种情况也与第二种情况一样
0 0
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:
- POI中可能会用到一些需要设置EXCEL单元格
- poi操作excel导出单元格设置不同格式的方法
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- POI中设置Excel单元格格式
- extjs中submit提交后不进入success也不进入failure 解决方法
- C语言实现归并排序
- 切换develop命令获取git上其他分支的代码
- bootstrap 2016.07.12回顾
- 数据库相关备忘录
- POI中可能会用到一些需要设置EXCEL单元格格式的操作小结
- 关于颜色直方图和反向投影的一些理解
- 文章标题
- IONIC----03.ionicLoading
- 【转载】Oracle用一个表的列更新另一个表对应记录的列
- PCAN linux 下ROS匹配
- uC/OS-II中断及时钟节拍
- IOS Dev Intro - Thread Sync
- 兼容各种版本浏览器网页视频播放制作路程