Jxl读取合并单元格及需注意的问题

使用jxl处理excel文件时经常会碰到合并单元格,比如读取合并单元格的数据、将单元格式合并等等.

   1、合并单元格我们可以通过:接口WritableSheet中的mergeCells
(int col1,
int row1, int col2, int row2)方法来合并单元格,其中参数:

   col1 -为合并单元格左上角所在的列
   row1 -为合并单元格左上角所在的行
   col2 - 为合并单元格右下角所在的列
   row2 - 为合并单元格右下角所在的行




   2、读取或判断某元格是否为合并后的单元格,我们可以通过jxl.sheet类提供一个实例方法getMergedCells() ,可以获取该sheet中所有合并后的区域,如:
  

Java代码
Workbook workbook = Workbook.getWorkbook(new File(filePath));       
Sheet[] sheets = workbook.getSheets();  
Range[] ranges =null;  
for (Sheet sheet : sheets) {  
     ranges = sheets.getMergedCells();  
Workbook workbook = Workbook.getWorkbook(new File(filePath));    
Sheet[] sheets = workbook.getSheets();
Range[] ranges =null;
for (Sheet sheet : sheets) {
     ranges = sheets.getMergedCells();
}

如果通过以上方式获取的话,不管sheet中是否包含合并的单元格区域ranges都为零,百思不得棋解,最后试着通过以下方式去获取Sheet集合居然可以了,但不知道为什么按照上面的写法就是不行。
int  sheetSize = workbook.getNumberOfSheets();

Java代码
Workbook workbook = Workbook.getWorkbook(new File(filePath));  
int sheetSize = workbook.getNumberOfSheets();  
Range[] ranges =null;    
for (int i = 0; i < sheetSize; i ++) {  
      Sheet sheet = workbook.getSheet(i);  
      ranges = sheet.getMergedCells();  
Workbook workbook = Workbook.getWorkbook(new File(filePath));
int sheetSize = workbook.getNumberOfSheets();
Range[] ranges =null; 
for (int i = 0; i < sheetSize; i ++) {
      Sheet sheet = workbook.getSheet(i);
      ranges = sheet.getMergedCells();

你可能感兴趣的:(Excel)