`
这些年
  • 浏览: 397901 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

poi 合并单元格(转)

    博客分类:
  • poi
 
阅读更多

POI进行跨行需要用到对象HSSFSheet对象,现在就当我们程序已经定义了一个HSSFSheet对象sheet。 

跨第1行第1个到第2个单元格的操作为 
sheet.addMergedRegion(new Region(0,(short)0,0,(short)1)); 

跨第1行第1个到第2行第1个单元格的操作为 
sheet.addMergedRegion(new Region(0,(short)0,1,(short)0)); 

重点注意事项: 
1.单元格CELL和ROW对象下标都是从0开始的。 
2.单元格合并时Region(1,2,3,4)第1个值的行号必须要比3位置的行号小,如果大于3就不能正常合并单元格 
3.合并单元格的时候要合并的单单元格必须先创建,这样方便后面再次获取这个单元格来填充数据,主要就是因为合并时不能由后向前进行合并引起的。

Java代码  收藏代码
  1. package com.cz.test;  
  2.   
  3. import java.io.FileOutputStream;  
  4. import java.sql.ResultSet;  
  5. import java.sql.ResultSetMetaData;  
  6.   
  7. import javax.swing.JOptionPane;  
  8.   
  9. import org.apache.poi.hssf.usermodel.HSSFCell;  
  10. import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
  11. import org.apache.poi.hssf.usermodel.HSSFRow;  
  12. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  13. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  14. import org.apache.poi.hssf.util.Region;  
  15.   
  16. import com.cz.util.SqlHelper;  
  17.   
  18. public class ExcelExport2 {  
  19.       
  20.     public static void resultSetToExcel(ResultSet rs, String xlsName,  
  21.             String sheetName) throws Exception {  
  22.         // 第一步,创建一个webbook,对应一个Excel文件  
  23.         HSSFWorkbook wb = new HSSFWorkbook();  
  24.         // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet  
  25.         HSSFSheet sheet = wb.createSheet("学生表一");  
  26.         // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short  
  27.         HSSFRow row = sheet.createRow((int0);  
  28.         // 第四步,创建单元格,并设置值表头 设置表头居中  
  29.         HSSFCellStyle style = wb.createCellStyle();  
  30.         style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
  31.         HSSFCell cell;  
  32.         ResultSetMetaData md = rs.getMetaData();  
  33.         int nColumn = md.getColumnCount();  
  34.         // 写入各个字段的名称  
  35.         for (int i = 1; i <= nColumn; i++) {  
  36.             sheet.addMergedRegion(new Region(0,(short)0,1,(short)0));   
  37.             cell = row.createCell((short) (i - 1));  
  38.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
  39.             cell.setCellValue(md.getColumnLabel(i));  
  40.         }  
  41.   
  42.         int iRow = 2;  
  43.         // 写入各条记录,每条记录对应Excel中的一行  
  44.         while (rs.next()) {  
  45.             row = sheet.createRow((short) iRow);  
  46.             for (int j = 1; j <= nColumn; j++) {  
  47.                 cell = row.createCell((short) (j - 1));  
  48.                 cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
  49.                 cell.setCellValue(rs.getObject(j).toString());  
  50.             }  
  51.             iRow++;  
  52.         }  
  53.         FileOutputStream fOut = new FileOutputStream(xlsName);  
  54.         wb.write(fOut);  
  55.         fOut.flush();  
  56.         fOut.close();  
  57.         JOptionPane.showMessageDialog(null"导出数据成功!");  
  58.     }  
  59.   
  60.     public static void main(String[] args) {  
  61.         String sql="select * from dept";  
  62.         ResultSet rs=SqlHelper.executeQuery(sql, null);  
  63.         try {  
  64.             resultSetToExcel(rs, "F:\\dept.xls","sheetName");  
  65.         } catch (Exception e) {  
  66.             e.printStackTrace();  
  67.         }  
  68.     }  
  69. }  

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics