作者:乔山办公网日期:
返回目录:excel表格制作
2003和2007用的POI jar包不同,因为2003是excel.xls 2007是excel.xlsx后缀名不同,但是解析方法是相同的
应该可以用application.Version来返回到底是哪个版本的Excel吧
// 单元格合并
// 四个参数分别是zhidao:起始行,起专始列,结束行,结束列
sheet.addMergedRegion(new Region(0, (short) (celln + 1), 0,
(short) (celle + 1)));
试试这个呢属
sheet.addMergedRegion(new CellRangeAddress(0, 0, startColumn + 3*j, startColumn + 3*j + 2));
Poi解析e799bee5baa6e58685e5aeb93652003时使用的是HSSFCell,而2007的则是
XSSFCell,是完全不同的两套API
必须先要判断excel的类型,不过 HSSFWorkbook 和 XSSFWorkbook 实现的接口都是一样的Workbook,直接在实例化接口的时候有点区别其他时候没有任何差异。
比如,刚刚获取excle文件流,先判断excel格式确定用03还是07处理类实例化Workbook接口。
view sourceprint?
01.Workbook workbook = null;
02.if(Constants.ImportExport.EXCEL.equals(fileExtension))
03.{
04.workbook = new HSSFWorkbook(fin);
05.}
06.else
07.{
08.workbook = new XSSFWorkbook(fin);
09.}
获取workbook 后,后续处理Sheet、Row、Cell 统统用接口实现,不用关注03,07差异性。也就是根本不会涉及到 XSSFCell、HSSFCell这些类。
相关类或接口:
view sourceprint?
1.import org.apache.poi.ss.usermodel.Workbook;
2.import org.apache.poi.hssf.usermodel.HSSFWorkbook;
3.import org.apache.poi.xssf.usermodel.XSSFWorkbook;
4.
5.import org.apache.poi.ss.usermodel.Sheet;
6.import org.apache.poi.ss.usermodel.Row;
7.import org.apache.poi.ss.usermodel.Cell;