Isr*_*ato 9 java apache apache-poi
这是我目前所知道的:
但我想要完成的是:我想看看是否可以确定仅给定特定行的合并单元格.就像我有一行,我想知道在该行下找到的所有合并区域的数量.
如果有人能就这件事分享他们的想法或建议,我将永远感激不尽.
Eri*_*las 10
这里有一个代码示例,可以完成您想要的内容.getNbOfMergedRegions返回特定行中合并区域的数量.请记住,POI行号从零开始!
package test;
import java.io.File;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
public class Main {
public static int getNbOfMergedRegions(Sheet sheet, int row)
{
int count = 0;
for(int i = 0; i < sheet.getNumMergedRegions(); ++i)
{
CellRangeAddress range = sheet.getMergedRegion(i);
if (range.getFirstRow() <= row && range.getLastRow() >= row)
++count;
}
return count;
}
public static void main(String[] args) {
File file = new File("/Users/enicolas/Downloads/test.xls");
try
{
Workbook wb = WorkbookFactory.create(file); // Line 409 for ref to the exception stack trace
Sheet sheet = wb.getSheetAt(0);
for(int row = 0; row < 20; ++row)
{
int n = getNbOfMergedRegions(sheet, row);
System.out.println("row [" + row + "] -> " + n + " merged regions");
}
System.out.println(wb);
}
catch (Throwable e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)