java基于poi操作Excel 学习日记

一、环境配置

我们通过学习知道,java操作Excel时需要在maven工程中的pom.xml文件添加poi-ooxml的依赖包,眼下我们选择的版本是3.17,因为相对稳定且使用率较高。配置路径以及结果如下:
在这里插入图片描述

二、poi-ooxml源码类学习

我们安装好依赖后按照业务需要,即操作Excel表格(当前不涉及Excel的写入,只有读取操作),会学习到四个源码类,分别是XSSFWorkbook源码类、XSSFSheet源码类、XSSFRow源码类和XSSFCell源码类。学习源码的一个大体节奏是通过源码类先学习类的构造方法,然后是普通方法最后汇总源码方法,进行流水线开发。现在我先把四个源码类的常用方法总结下来,具体如下。

2.1 XSSFWorkbook源码类

[ public class XSSFWorkbook extends POIXMLDocument implements Workbook ]。(路径:poi-ooxml-3.17.jar–>org.apache.poi.xssf.usermodel–>XSSFWorkbook.clss):

//构造方法
public XSSFWorkbook(); 
public XSSFWorkbook(XSSFWorkbookType workbookType)// public XSSFWorkbook(OPCPackage pkg) throws IOException;
// public XSSFWorkbook(InputStream is) throws IOException;
public XSSFWorkbook(File file) throws IOException, InvalidFormatException;
//---上面构造方法引出File源码类,通过实例话File类拿到File类的对象,传参,获取XSSFWorkbook的对象。
public XSSFWorkbook(String path) throws IOException;
//普通方法
public XSSFSheet cloneSheet(int sheetNum)public XSSFSheet cloneSheet(int sheetNum, String newName)public XSSFSheet createSheet()public XSSFSheet createSheet(String sheetname)public XSSFSheet getSheet(String name)public XSSFSheet getSheetAt(int index)public int getSheetIndex(String name)public int getSheetIndex(Sheet sheet)public String getSheetName(int sheetIx)public void removeSheetAt(int index)public void setSheetName(int sheetIndex, String sheetname)
2.2 XSSFSheet源码类

[ public class XSSFSheet extends POIXMLDocumentPart implements Sheet ]。上面我们观察到普通方法内创建Sheet、获取Sheet等方法最终都会得到一个sheet对象,那么XSSFSheet源码类又有哪些方法提供给我们使用呢?

// 构造方法
protected XSSFSheet()protected XSSFSheet(PackagePart part);
注意:XSSFSheet源码类的构造方法都是被保护类型的,不能直接调用,我们可以通过XSSFWorkbook源码类拿到sheet对象,操作XSSFSheet源码类中的方法。
// 普通方法
public XSSFWorkbook getWorkbook()public String getSheetName()public int getColumnWidth(int columnIndex)public int getDefaultColumnWidth()public boolean isColumnHidden(int columnIndex)public void setColumnHidden(int columnIndex, boolean hidden)public void setColumnWidth(int columnIndex, int width)public void setDefaultColumnWidth(int width)

public int getFirstRowNum();
public int getLastRowNum();
public short getDefaultRowHeight()public void setDefaultRowHeight(short height);
public XSSFRow createRow(int rownum)public XSSFRow getRow(int rownum);
public void removeRow(Row row);
2.3 XSSFRow源码类

[ public class XSSFRow implements Row, Comparable ]。上面我们可以看到由XSSFWorkbook类对象操作XSSFSheet类中的方法可以得到XSSFRow类的对象。得到行对象后就可以操作XSSFRow源码类中的方法。

// 构造方法
protected XSSFRow(CTRow row, XSSFSheet sheet);
同XSSFSheet源码类,XSSFRow源码类的构造方法也是被保护的,解决方法类似。
// 普通方法
public XSSFSheet getSheet()public XSSFCell createCell(int columnIndex)public XSSFCell createCell(int columnIndex, CellType type)public XSSFCell getCell(int cellnum)public short getFirstCellNum()public short getLastCellNum()// 特殊点:从1开始计数。
public int getRowNum()public void setRowNum(int rowIndex)public void removeCell(Cell cell)
2.4 XSSFCell源码类

[ public final class XSSFCell implements Cell ]。同样的道理,我们来看一下XSSFCell源码类中都有哪些构造方法和普通方法。

// 构造方法
protected XSSFCell(XSSFRow row, CTCell cell);
// 普通方法
public XSSFSheet getSheet();
public XSSFRow getRow();
public boolean getBooleanCellValue();
public void setCellValue(boolean value);
public double getNumericCellValue();
public void setCellValue(double value);
public String getStringCellValue();
public void setCellValue(String str);
public XSSFRichTextString getRichStringCellValue();
public void setCellValue(RichTextString str);
public String getCellFormula();
public void setCellF
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值