POI 简单合并单元格

public class MergedCells {
   /** 测试使用的POI版本是3.1
     * @param args
     */
     public static void main(String[] args) throws IOException {
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet = wb.createSheet("new sheet");   

            HSSFRow row = sheet.createRow(1);
            HSSFCell cell = row.createCell((short)1);
            cell.setCellValue("This is a test of merging");   

            //1.生成字体对象
            HSSFFont font = wb.createFont();
            font.setFontHeightInPoints((short) 10);
            font.setFontName("新宋体");
            font.setColor(HSSFColor.BLUE.index);
            font.setBoldweight((short) 0.8);
            //2.生成样式对象
            HSSFCellStyle style = wb.createCellStyle();
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
            style.setFont(font); //调用字体样式对象
            style.setWrapText(true);
                           //增加表格边框的样式 例子
                           style.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);
                       style.setBorderLeft(HSSFCellStyle.BORDER_DOUBLE);
                       style.setTopBorderColor(HSSFColor.GOLD.index);
                       style.setLeftBorderColor(HSSFColor.PLUM.index);

            //3.单元格应用样式
            cell.setCellStyle(style);

            //新版用法 3.8版
//             sheet.addMergedRegion(new CellRangeAddress(
//                     1, //first row (0-based)  from 行
//                     2, //last row  (0-based)  to 行
//                     1, //first column (0-based) from 列
//                     1  //last column  (0-based)  to 列
//             ));
            //表示合并B2,B3
            sheet.addMergedRegion(new Region(
                     1, //first row (0-based)
                    (short)1, //first column  (0-based)
                     2, //last row (0-based)
                    (short)1  //last column  (0-based)
             ));   

            //合并叠加  表示合并B3 B4。但是B3已经和B2合并了,所以,变成B2:B4合并了
            sheet.addMergedRegion(new Region(
                     2, //first row (0-based)
                    (short)1, //first column  (0-based)
                     3, //last row (0-based)
                    (short)1  //last column  (0-based)
             ));  

            //一下代码表示在D4 cell 插入一段字符串
            HSSFRow row2 = sheet.createRow(3);
            HSSFCell cell2 = row2.createCell((short)3);
            cell2.setCellValue("this is a very very very long string , please check me out.");
                      //cell2.setCellValue(new HSSFRichTextString("我是单元格!"));

             // Write the output to a file
             FileOutputStream fileOut = new FileOutputStream("workbook.xls");
             wb.write(fileOut);
             fileOut.close();
         }
}
时间: 2024-11-07 05:27:12

POI 简单合并单元格的相关文章

POI 实现合并单元格以及列自适应宽度

POI是apache提供的一个读写Excel文档的开源组件,在操作excel时常要合并单元格,合并单元格的方法是: sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 2)); 自适应列宽度: sheet.autoSizeColumn(1); sheet.autoSizeColumn(1, true); 这两种方式都是自适应列宽度,但是注意这个方法在后边的版本才提供,poi的版本不要太老. 注意:第一个方法在合并单元格的的单元格并不好使,必须用

poi获取合并单元格内的第一行第一列的值

当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: 1 import java.io.FileInputStream; 2 import java.io.FileNotFoundException; 3 import java.io.IOException; 4 5 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 6 import org.apache.poi.ss.

POI中合并单元格和样式的处理

合并单元格: 在POI中,合并单元格只需用到一个方法即可,即addMergedRegion(CellRangeAddress region), 此方法HSSFSheet的一个方法,即在工作薄对象下调用此方法 CellRangeAddress的构造方法如下: CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)     如:sheet.addMergedRegion(new CellRangeAddress(2

Apache POI 合并单元格--简单解释版带Demo

合并单元格所使用的方法: sheet.addMergedRegion( CellRangeAddress  cellRangeAddress  ); CellRangeAddress  对象的构造方法需要传入合并单元格的首行.最后一行.首列.最后一列. CellRangeAddress cra=new CellRangeAddress(0, 3, 3, 9); 怎样把数据写入合并后的单元格中 首先要查看你 CellRangeAddress 构造方法的firstcol index 创建firstc

poi导出Excel报表多表头双层表头、合并单元格

效果图: controller层方法: /**     *      * 导出Excel报表     * @param request     * @return     *      */    @RequestMapping("/export")    @ResponseBody    public void export(HttpServletRequest request,            HttpServletResponse response, String year

poi合并单元格同时导出excel

poi合并单元格同时导出excel 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

poi 合并单元格 无边框问题

public void merge(int startrow,int endstartrow,int startColumn,int endColumn){ sht.addMergedRegion(new CellRangeAddress(startrow, endstartrow, startColumn, endColumn)); } 合并单元格时候  合并后的单元格部分边框会看不见.从而进行处理. 下面是处理样式的 方法. 单元格设置边框 public void setStyle(int

apache poi 合并单元格 设置边框

HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); //创建一个样式 HSSFCellStyle styleBorderThin= wb.createCellStyle(); setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框 setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左

JAVA poi 合并单元格

完整帮助代码:JAVA poi 帮助类 // 得到一个sheet中有多少个合并单元格 Integer sheetMergeCount = sheet.getNumMergedRegions(); for (Integer i = 0; i < sheetMergeCount; i++) { // 获取合并后的单元格 CellRangeAddress range = sheet.getMergedRegion(i); String cellValue = itemList.get(range.ge