public static void main(String[] args) throws BiffException, IOException {
//通过输入流获取磁盘上的文件
InputStream is = new FileInputStream("E:\\按时地方.xls");
try {
//根 据输入流创建对象
Workbook wb = Workbook.getWorkbook(is);
//获得文件中sheet的个数
int wbNum = wb.getNumberOfSheets();
for(int i = 0;i<wbNum;i++){
//得到这个文件中的第i个sheet表
Sheet sheet = wb.getSheet(i);
String sheetName = sheet.getName();
System.out.println("sheetName="+sheetName);
if(sheet!=null){
// 获取表格总列数
int rsColumns = sheet.getColumns();
// 获取表格总行数
int rsRows = sheet.getRows();
//循环文件里的数据
for(int j=0;j<rsRows;j++){
//System.out.println(rsRows);
Cell[] cells = sheet.getRow(j);
for(int k=0;k<rsColumns;k++){
System.out.print(cells[k].getContents()+"----");
}
System.out.println();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
原创代码:
private void readSeven(String filename){
try {
InputStream is = new FileInputStream(filename);
HibernateAccessor exec = (HibernateAccessor) MenuTree.getApplicationContext().getBean("hqlAccessor");
StringBuffer fileSb = new StringBuffer();
XSSFWorkbook wb = new XSSFWorkbook(is);
//文档中有几个EXCEL表
int wbNum = wb.getNumberOfSheets();
for(int i = 0;i<wbNum;i++){
XSSFSheet sheet = wb.getSheetAt(i);
//sheet.getLastRowNum()这是取得的行数
if(sheet.getLastRowNum()+1!=0){
// 获取表格总行数
int rsRows = sheet.getLastRowNum();
//循环文件里的数据
for(int j=0;j<=rsRows;j++){
XSSFRow row = sheet.getRow(j);
int cellCount = row.getLastCellNum();
for(short k=0;k<cellCount;k++){
XSSFCell cell = row.getCell(k);
if(k==cellCount-1){
fileSb.append(""+this.getCellString(cell)+"");
}else{
fileSb.append(""+this.getCellString(cell)+"" + "|" );
}
}
if(j!=rsRows){
fileSb.append(System.getProperty("line.separator"));
}
}
}
}
BufferedWriter writer = new BufferedWriter(new FileWriter(new File(filename.replace(".xlsx", ".txt"))));
writer.write(fileSb.toString());
writer.close();
is.close();
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}