现在再看看如果将指定的单元格进行合并操作。用POI进行合并操作,使用「HSSFSheet」类的「addMergedRegion」方法。
addMergedRegion public int addMergedRegion(Region region)
adds a merged region of cells (hence those cells form one) Parameters: region - (rowfrom/colfrom-rowto/colto) to merge Returns: index of this region
合并范围必须使用「Region」类来指定,关于「Region」类的介绍如下。
「Region」类关系图
- java.lang.Object
- org.apache.poi.hssf.util.Region
- public class Region extends java.lang.Object implements java.lang.Comparable
「Region」类的构造方法
Region public Region(int rowFrom, short colFrom, int rowTo, short colTo)
--
指定范围时,从左上的单元格到右下的单元格指定,比方像下面这样。
Region(1, (short)1, 2, (short)3)
示例程序
动手做做看,还是使用原来的Excel文件。
把上图选中的单元格进行合并操作时,看下面的程序。
import java.io.*; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.util.Region; public class POISample{ public static void main(String[] args){ FileInputStream in = null; HSSFWorkbook workbook = null; try{ in = new FileInputStream("sample.xls"); POIFSFileSystem fs = new POIFSFileSystem(in); workbook = new HSSFWorkbook(fs); }catch(IOException e){ System.out.println(e.toString()); }finally{ try{ in.close(); }catch (IOException e){ System.out.println(e.toString()); } } HSSFSheet sheet = workbook.getSheetAt(0); sheet.addMergedRegion(new Region(1, (short)1, 2, (short)3)); FileOutputStream out = null; try{ out = new FileOutputStream("sample2.xls"); workbook.write(out); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { out.close(); }catch(IOException e){ System.out.println(e.toString()); } } } }
把刚作成的新的Excel文件打开看看吧
没有评论:
发表评论