public class ExcelFile
extends java.lang.Object
InputStream is = ...
ExcelFile excelFile = ExcelFile.loadExcel(is,ExcelFile.EXCEL_2003) ;//默认解析2003,如果通过传入文件名,则会自动根据文件名后缀判断Excel版本
int sheetNum = excelFile.getSheetNum() ;
for(int i=0; i<sheetNum; i++)
{
ExcelSheet sheet = excelFile.getSheet(i) ;
int rowCount = sheet.rowCount() ;
for(int j=0; j<rowCount; j++)
{
//取字符型
sheet.getItemString(j,0) ;
//取数字型
sheet.getItemDouble(j,1) ;
...
//通用方法 返回String
sheet.getItemValue(j,N) ;
}
}
excelFile.close();
//如果需要获取图片数据 20140715添加
ExcelPictureInfo picInfo = sheet.getPicData(row,col) ;
//获取图片扩展名
String fileExt = picInfo.getFileExt() ;
//获取图片 byte[] 数据
byte[] picByteArray = picInfo.getData() ;
//获取图片流
InputStream is = picInfo.getInputStream() ;
//获取图片mimeType
String mimeType = picInfo.getMimeType() ;
//获取形状数据,20200430添加
ExcelShape shape = sheet.getExcelShape() ;
//获取sheet中的所有形状,如:textbox等
Map<String,ExcelShape.ExcelShapeInfo> shapeMap = shape.getShapeMap() ;
for(Map.Entry<String, ExcelShape.ExcelShapeInfo> entry:shapeMap.entrySet())
{
ExcelShape.ExcelShapeInfo si = entry.getValue() ;
//判断是否为文本型 形状,文本型有可以获取文本内容
if(si.isTextShape() == false)
continue ;
System.out.println(si.getShapeName() + "=" + si.getText());
}
//通过图形名称获取文本值
System.out.println(shape.getTextByShapeName("Text Box 3"));
限定符和类型 | 字段和说明 |
---|---|
static int |
EXCEL_2003 |
static int |
EXCEL_2007 |
int |
version |
限定符和类型 | 方法和说明 |
---|---|
void |
close()
关闭,清理资源
|
void |
forEach(java.util.function.Consumer<? super ExcelRow> action) |
java.lang.String |
getHtmlText()
生成HTML页面
|
ExcelPicture |
getPicture() |
ExcelSheet |
getSheet(int sheetIndex)
获取Sheet对象
|
ExcelSheet |
getSheet(java.lang.String sheetName)
通过sheet名称获取sheet对象
|
int |
getSheetNum()
获取SHEET的值
|
org.apache.poi.ss.usermodel.Workbook |
getWorkbook()
只针对Excel2003的方法
|
static ExcelFile |
loadExcel(java.io.InputStream is)
加载Excel文件,默认为EXCEL_2003
|
static ExcelFile |
loadExcel(java.io.InputStream is,
int version)
加载Excel文件
|
static ExcelFile |
loadExcel(java.lang.String fileName)
加载Excel文件
|
static ExcelFile |
loadExcel(java.lang.String fileName,
int version)
加载Excel文件
|
static void |
main(java.lang.String[] args) |
static void |
resetExcel2007TempDir()
重置临时文件夹
|
void |
saveAs(java.io.OutputStream os)
文件别存为
|
void |
setForEachBreak(boolean forEachBreak)
设置foreach循环时是否退出
|
public static final int EXCEL_2003
public static final int EXCEL_2007
public int version
public static void resetExcel2007TempDir()
public static ExcelFile loadExcel(java.io.InputStream is, int version) throws java.io.IOException
is
- 文件流version
- Excel版本,2003、2007java.io.IOException
- IOExceptionpublic static ExcelFile loadExcel(java.io.InputStream is) throws java.io.IOException
is
- InputStreamjava.io.IOException
- IOExceptionpublic static ExcelFile loadExcel(java.lang.String fileName) throws java.io.IOException
fileName
- 文件路径java.io.IOException
- IOExceptionpublic static ExcelFile loadExcel(java.lang.String fileName, int version) throws java.io.IOException
fileName
- 文件名version
- 版本号java.io.IOException
- IOExceptionpublic ExcelSheet getSheet(int sheetIndex)
sheetIndex
- 序号 从0开始public int getSheetNum()
public ExcelSheet getSheet(java.lang.String sheetName)
sheetName
- sheet名称public org.apache.poi.ss.usermodel.Workbook getWorkbook()
public void close()
public void saveAs(java.io.OutputStream os) throws java.io.IOException
os
- OutputStreamjava.io.IOException
- IOExceptionpublic java.lang.String getHtmlText() throws java.lang.Exception
java.lang.Exception
- Exceptionpublic ExcelPicture getPicture()
public void setForEachBreak(boolean forEachBreak)
forEachBreak
- public void forEach(java.util.function.Consumer<? super ExcelRow> action)
public static void main(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception