private static void read() {
try {
String source = "e:/12.xls";
InputStream is = new FileInputStream(source);
Workbook rwb = Workbook.getWorkbook(is);
// 获得总 Sheets
Sheet[] sheets = rwb.getSheets();
for (int i = 0; i < sheets.length; i++) {
for (int j = 0; j < sheets[i].getColumns(); j++) {
//获取指定单元格的对象引用,需要注重的是它的两个参数,第一个是列数,第二个是行数
Cell cell = sheets[i].getCell(j, i);
System.out.print("Values : " + cell.getContents().trim());
}
System.out.println();
} } catch (Exception e) {
e.printStackTrace();
}
}问题是:Sheet[] sheets = rwb.getSheets(); 这句获取不到所有行数,每次都长度都是1.指点下, 或者你有写好的给我也行。
String excelfile = Util.null2String(req.getParameter("excelfile"));
ExcelFile ef = null;
ExcelSheet sheetvalues = null;
ExcelRow rowvalues = null;
HSSFWorkbook wb = null;
HSSFSheet sheets = null;
HSSFRow rows = null;
HSSFCell cells = null;
HSSFCellStyle cellStyle = null;
if(excelfile.equals(""))
ef = (ExcelFile)req.getSession(true).getAttribute("ExcelFile");
else
ef = (ExcelFile)req.getSession(true).getAttribute(excelfile);
if(ef == null)
return;
wb = new HSSFWorkbook();
initStyle(ef, wb);
int sheetindex = 0;
while(ef.next())
{
String sheetname = ef.getSheetname();
sheetvalues = ef.getSheet();
if(sheetvalues != null)
{
sheets = wb.createSheet();
wb.setSheetName(sheetindex, Util.fromScreen(sheetname), (short)1);
sheetindex++;
for(int i = 0; i < sheetvalues.size(); i++)
{
rowvalues = sheetvalues.getExcelRow(i);
if(rowvalues != null)
{
short rowheight = rowvalues.getHight();
rows = sheets.createRow((short)i);
if(rowheight != 255)
rows.setHeightInPoints(rowheight);
int rowcellindex = 0;
boolean hasstyle = false;
boolean hasspan = false;
if(rowvalues.stylesize() == rowvalues.size())
hasstyle = true;
if(rowvalues.spansize() == rowvalues.size())
hasspan = true;
for(int j = 0; j < rowvalues.size(); j++)
{
cells = rows.createCell((short)rowcellindex);
String cellvalues = Util.null2String(rowvalues.getValue(j));
String cellvalueh = cellvalues.substring(0, 2);
String cellvaluev = cellvalues.substring(2);
if(cellvalueh.indexOf("s_") == 0)
{
cells.setEncoding((short)1);
cells.setCellValue(Util.fromHtmlToEdit(cellvaluev));
} else
if(cellvalueh.indexOf("i_") == 0)
{
int tempvalue = Util.getIntValue(cellvaluev);
if(tempvalue != 0)
cells.setCellValue(tempvalue);
} else
if(cellvalueh.indexOf("f_") == 0)
{
float tempvalue = Util.getFloatValue(cellvaluev);
if((double)tempvalue != 0.0D)
cells.setCellValue(tempvalue);
} else
if(cellvalueh.indexOf("d_") == 0)
{
double tempvalue = Util.getDoubleValue(cellvaluev);
if(tempvalue != 0.0D)
cells.setCellValue(tempvalue);
} else
if(cellvalueh.indexOf("o_") == 0)
cells.setCellFormula(cellvaluev);
else
if(cellvalueh.indexOf("n_") == 0)
if(Util.getDoubleValue(cellvaluev, -9999.9899999999998D) == -9999.9899999999998D)
{
cells.setEncoding((short)1);
cells.setCellValue(Util.fromHtmlToEdit(cellvaluev));
} else
{
double tempvalue = Util.getDoubleValue(cellvaluev);
if(tempvalue != 0.0D)
cells.setCellValue(tempvalue);
}
if(hasstyle)
{
String stylename = Util.null2String(rowvalues.getStyle(j));
if(!stylename.equals(""))
{
cellStyle = getStyle(stylename);
if(cellStyle != null)
cells.setCellStyle(cellStyle);
}
}
if(hasspan)
{
int rowspan = rowvalues.getSpan(j);
if(rowspan > 1)
{
for(int k = 0; k < rowspan - 1; k++)
{
rowcellindex++;
cells = rows.createCell((short)rowcellindex);
cells.setCellValue("");
if(hasstyle && cellStyle != null)
cells.setCellStyle(cellStyle);
} sheets.addMergedRegion(new Region(i, (short)((rowcellindex + 1) - rowspan), i, (short)rowcellindex));
}
}
rowcellindex++;
} }
} for(int i = 0; i < sheetvalues.columnsize(); i++)
sheets.setColumnWidth((short)i, sheetvalues.getColumnwidth(i)); }
}
String filename = ef.getFilename();
res.setHeader("content-disposition", "attachment; filename=" + filename);
ServletOutputStream out = res.getOutputStream();
res.setContentType("application/octet-stream");
wb.write(out);
out.flush();
out.close();
rwb.getSheets();
是获得这个Excel文件中有多少个工作表啊!
楼主是想获取一个表中的所有行,Sheet rs = rwb.getSheet(0); rs.getRow();就是获得所有的行!
http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/jxl/Workbook.html
这个的确是获得所有工作表
sheets[0]是第一张 再getRow 才是所有行