Jxl对xls文件的操作主要为 读文件、写文件:
读文件:
1.创建jxl.Workbook对像。创建Workbook对像也有两种方式,如下所示:
1> 先放到流中,对流进行操作。
InputStream is = new FileInputStream("d://test.xls");
jxl.Workbook wb = jxl.Workbook.getWorkbook(is);
2> 直接对文件进行操作。
jxl.Workbook wb = jxl.Workbook.getWorkbook(new File("d://test.xls"));
2.获取所需的Sheet对象。
1>wb.getSheets()返回值是一个Sheet[]数组,这种方法要用wb.getSheetNames()取出Sheet[]数组 对应的Sheet的文件名进行iterator迭代取出要操作的对应的Sheet的下标sheetIndex,再通过 Sheet st = wb.getSheets()[sheetIndex]得到所要操作的Sheet。
2>wb.getSheet(sheetIndex)返回值是Sheet[]数组中对应下标的Sheet。
下标为0这里可以这样获得Sheet对象: Sheet st = wb.getSheet(0)
3.读取单元格中的内容:
1> 得到sheet列数:st.getColumns();
得到sheet行数:st.getRows();
2>获取单元格的内容:
1>这样可以获取所有类型但取出后均被转为String类型:
String cellContent = cl.getContents();
2>按类型判断进行不周内容类型的获取:
2.1>文本型的获取:
if(cl.getType() == CellType.LABEL){
LabelCell lc = (LabelCell)cl;
String labelContent = lc.getString();
}
2.2>数值型的获取:
if(cl.getType() == CellType.NUMBER){
NumberCell nc = (NumberCell)cl;
double numberContent = nc.getValue();
}
2.3>日期类型的获取:
if(cl.getType() == CellType.DATE){
DateCell dc = (DateCell)cl;
Date dateContent = dc.getDate();
}
写文件:
1. WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件
WritableSheet wsheet = wbook.createSheet("sheet标题",0); // sheet名称
// 设置excel标题,设置格式,字体
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 14,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLACK);
WritableCellFormat wcfFC = new WritableCellFormat(wfont);
//水平居中
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
//垂直居中
wcfFC.setVerticalAlignment(VerticalAlignment.CENTRE);
wsheet.addCell(new Label(0, 0, "标题",wcfFC));
// 开始生成主体内容
wsheet.addCell(new Label(列, 行, "内容",格式WritableCellFormat ));
// 主体内容生成结束
wbook.write(); // 写入文件
wbook.close();
os.close(); // 关闭流