﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-新的起步，做好工作总结</title><link>http://www.blogjava.net/shimingming/</link><description>J2EE相关技术总结</description><language>zh-cn</language><lastBuildDate>Wed, 06 May 2026 23:13:57 GMT</lastBuildDate><pubDate>Wed, 06 May 2026 23:13:57 GMT</pubDate><ttl>60</ttl><item><title>POI操作</title><link>http://www.blogjava.net/shimingming/archive/2012/08/20/385860.html</link><dc:creator>史明明</dc:creator><author>史明明</author><pubDate>Mon, 20 Aug 2012 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/shimingming/archive/2012/08/20/385860.html</guid><wfw:comment>http://www.blogjava.net/shimingming/comments/385860.html</wfw:comment><comments>http://www.blogjava.net/shimingming/archive/2012/08/20/385860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shimingming/comments/commentRss/385860.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shimingming/services/trackbacks/385860.html</trackback:ping><description><![CDATA[POI中可能会用到一些需要设置EXCEL单元格格式的操作小结：<br /><br />先获取工作薄对象:<br /><br />HSSFWorkbook wb = new HSSFWorkbook();<br /><br />HSSFSheet sheet = wb.createSheet();<br /><br />HSSFCellStyle setBorder = wb.createCellStyle();<br /><br />一、设置背景色：<br /><br />setBorder.setFillForegroundColor((short) 13);// 设置背景色<br /><br />setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);<br /><br />二、设置边框:<br /><br />setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框<br /><br />setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框<br /><br />setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框<br /><br />setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框<br /><br />三、设置居中:<br /><br />setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中<br /><br />四、设置字体:<br /><br />HSSFFont font = wb.createFont();<br /><br />font.setFontName("黑体");<br /><br />font.setFontHeightInPoints((short) 16);//设置字体大小<br /><br />HSSFFont font2 = wb.createFont();<br /><br />font2.setFontName("仿宋_GB2312");<br /><br />font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示<br /><br />font2.setFontHeightInPoints((short) 12);<br /><br />setBorder.setFont(font);//选择需要用到的字体格式<br /><br />五、设置列宽:<br /><br />sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值<br /><br />六、设置自动换行:<br /><br />setBorder.setWrapText(true);//设置自动换行<br /><br />七、合并单元格:<br /><br />Region region1 = new Region(0, (short) 0, 0, (short) 6);<br /><br />//参数1：行号 参数2：起始列号 参数3：行号 参数4：终止列号<br /><br />sheet.addMergedRegion(region1);<br /><br />附一个完整的例子：<br /><br />package cn.com.util;<br /><br />import org.apache.poi.hssf.usermodel.HSSFCellStyle;<br /><br />import org.apache.poi.hssf.usermodel.HSSFFont;<br /><br />import org.apache.poi.hssf.usermodel.HSSFRichTextString;<br /><br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br /><br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br /><br />import org.apache.poi.hssf.usermodel.HSSFRow;<br /><br />import org.apache.poi.hssf.usermodel.HSSFCell;<br /><br />import org.apache.poi.hssf.util.CellRangeAddress;<br /><br />import org.apache.poi.hssf.util.Region;<br /><br />import org.apache.poi.ss.usermodel.CellStyle;<br /><br />import java.io.FileOutputStream;<br /><br />import javax.servlet.http.HttpServlet;<br /><br />public class CreateXL extends HttpServlet {<br /><br />/** Excel 文件要存放的位置，假定在D盘下 */<br /><br />public static String outputFile = "c:test.xls";<br /><br />private void cteateCell(HSSFWorkbook wb, HSSFRow row, short col, String val) {<br /><br />HSSFCell cell = row.createCell(col);<br /><br />// cell.setEncoding(HSSFCell.ENCODING_UTF_16);<br /><br />cell.setCellValue(val);<br /><br />HSSFCellStyle cellstyle = wb.createCellStyle();<br /><br />cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);<br /><br />cell.setCellStyle(cellstyle);<br /><br />}<br /><br />public static void main(String argv[]) {<br /><br />try {<br /><br />// 创建新的Excel 工作簿<br /><br />HSSFWorkbook workbook = new HSSFWorkbook();<br /><br />// 设置字体<br /><br />HSSFFont font = workbook.createFont();<br /><br />// font.setColor(HSSFFont.COLOR_RED);<br /><br />font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);<br /><br />font.setFontHeightInPoints((short) 14);<br /><br />// HSSFFont font2 = workbook.createFont();<br /><br />// font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);<br /><br />// font.setFontHeightInPoints((short)14);<br /><br />// 设置样式<br /><br />HSSFCellStyle cellStyle = workbook.createCellStyle();<br /><br />cellStyle.setFont(font);<br /><br />cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);<br /><br />// HSSFCellStyle cellStyle2= workbook.createCellStyle();<br /><br />// cellStyle.setFont(font2);<br /><br />// cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);<br /><br />// 在Excel工作簿中建一工作表，其名为缺省值<br /><br />// 如要新建一名为"月报表"的工作表，其语句为：<br /><br />HSSFSheet sheet = workbook.createSheet("月报表");<br /><br />CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0,<br /><br />11);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />//第一行<br /><br />// 在索引0的位置创建行（最顶端的行）<br /><br />HSSFRow row = sheet.createRow(0);<br /><br />// 在索引0的位置创建单元格（左上端）<br /><br />HSSFCell cell = row.createCell(0);<br /><br />// 定义单元格为字符串类型<br /><br />cell.setCellType(HSSFCell.CELL_TYPE_STRING);<br /><br />cell.setCellStyle(cellStyle);<br /><br />// 在单元格中输入一些内容<br /><br />cell.setCellValue(new HSSFRichTextString("北京亿卡联科技发展有限公司小区门禁维修月报表"));<br /><br />//第二行<br /><br />cellRangeAddress = new CellRangeAddress(1, 1, 3, 6);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row = sheet.createRow(1);<br /><br />HSSFCell datecell = row.createCell(3);<br /><br />datecell.setCellType(HSSFCell.CELL_TYPE_STRING);<br /><br />datecell.setCellStyle(cellStyle);<br /><br />datecell.setCellValue("时间间隔xxxxx");<br /><br />cellRangeAddress = new CellRangeAddress(1, 1, 9,<br /><br />10);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(9).setCellValue("单位：元");<br /><br />//第三行<br /><br />row=sheet.createRow(2);<br /><br />row.createCell(0).setCellValue("一、");<br /><br />row.createCell(1).setCellValue("基本资料");<br /><br />//第4行<br /><br />row=sheet.createRow(3);<br /><br />row.createCell(1).setCellValue("小区名称：");<br /><br />cellRangeAddress=new CellRangeAddress(3,3,2,11);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(2).setCellValue("xxxxx");<br /><br />//第5行<br /><br />row=sheet.createRow(4);<br /><br />row.createCell(1).setCellValue("座落地点：");<br /><br />cellRangeAddress=new CellRangeAddress(4,4,2,11);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(2).setCellValue("xxxxx");<br /><br />//第6行<br /><br />row=sheet.createRow(5);<br /><br />row.createCell(1).setCellValue("建成年月：");<br /><br />cellRangeAddress=new CellRangeAddress(5,5,2,4);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(2).setCellValue("年月日：xxxxx");<br /><br />row.createCell(5).setCellValue("联系人");<br /><br />cellRangeAddress=new CellRangeAddress(5,5,6,8);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(6).setCellValue("XXX");<br /><br />row.createCell(9).setCellValue("电话");<br /><br />cellRangeAddress=new CellRangeAddress(5,5,10,11);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(10).setCellValue("XXX");<br /><br />//第7行<br /><br />row=sheet.createRow(6);<br /><br />row.createCell(1).setCellValue("住户：");<br /><br />row.createCell(2).setCellValue("(XX)");<br /><br />row.createCell(3).setCellValue("(户)");<br /><br />cellRangeAddress=new CellRangeAddress(6,6,4,5);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(4).setCellValue("共计（&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ）");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />row.createCell(6).setCellValue("幢");<br /><br />cellRangeAddress=new CellRangeAddress(6,6,7,8);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(7).setCellValue("发卡张数");&nbsp;&nbsp; <br /><br />cellRangeAddress=new CellRangeAddress(6,6,9,10);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(9).setCellValue("xxxx");<br /><br />//第9行<br /><br />row=sheet.createRow(8);<br /><br />row.createCell(0).setCellValue("二、");<br /><br />cellRangeAddress=new CellRangeAddress(8,8,1,2);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(1).setCellValue("维修用材料台账");<br /><br />row.createCell(6).setCellValue("三、");<br /><br />cellRangeAddress=new CellRangeAddress(8,8,7,9);<br /><br />sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(7).setCellValue("维修工时记录");<br /><br />//第10行<br /><br />row=sheet.createRow(9);<br /><br />row.createCell(0).setCellValue("日期");<br /><br />row.createCell(1).setCellValue("维修事项");<br /><br />row.createCell(2).setCellValue("材料清单");<br /><br />row.createCell(3).setCellValue("数量");<br /><br />row.createCell(4).setCellValue("单价");<br /><br />row.createCell(5).setCellValue("材料金额");<br /><br />row.createCell(7).setCellValue("日期");<br /><br />row.createCell(8).setCellValue("技工");<br /><br />row.createCell(9).setCellValue("工时数");<br /><br />row.createCell(10).setCellValue("单价");<br /><br />row.createCell(11).setCellValue("工时金额");<br /><br />//填充数据<br /><br />for (int i = 0; i &lt; 10; i++) {<br /><br />row=sheet.createRow(9+i+1);<br /><br />row.createCell(0).setCellValue("日期");<br /><br />row.createCell(1).setCellValue("维修事项");<br /><br />row.createCell(2).setCellValue("材料清单");<br /><br />row.createCell(3).setCellValue("数量");<br /><br />row.createCell(4).setCellValue("单价");<br /><br />row.createCell(5).setCellValue("材料金额");<br /><br />row.createCell(7).setCellValue("日期");<br /><br />row.createCell(8).setCellValue("技工");<br /><br />row.createCell(9).setCellValue("工时数");<br /><br />row.createCell(10).setCellValue("单价");<br /><br />row.createCell(11).setCellValue("工时金额");<br /><br />}<br /><br />//第n+10行<br /><br />row=sheet.createRow(9+10+1);<br /><br />//cellRangeAddress=new CellRangeAddress(19,19,0,4);<br /><br />//sheet.addMergedRegion(cellRangeAddress);<br /><br />row.createCell(0).setCellValue("累计:");<br /><br />row.createCell(1).setCellValue("xxx");<br /><br />row.createCell(7).setCellValue("累计:");<br /><br />row.createCell(8).setCellValue("xxx");<br /><br />// 新建一输出文件流<br /><br />FileOutputStream fOut = new FileOutputStream(outputFile);<br /><br />// 把相应的Excel 工作簿存盘<br /><br />workbook.write(fOut);<br /><br />fOut.flush();<br /><br />// 操作结束，关闭文件<br /><br />fOut.close();<br /><br />System.out.println("文件生成...");<br /><br />} catch (Exception e) {<br /><br />System.out.println("已运行 xlCreate() : " + e);<br /><br />}<br /><br />}<br /><br />}<br /><img src ="http://www.blogjava.net/shimingming/aggbug/385860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shimingming/" target="_blank">史明明</a> 2012-08-20 15:09 <a href="http://www.blogjava.net/shimingming/archive/2012/08/20/385860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>