代码:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
/**
* 调用jxl读写excel文件示例
*
* @author 苏轶 2013年12月4日
*/
public class JXLSample {
private final String[] titles = new String[] { "代码", "名称", "日期", "价格", "盈利" };
private final String[] data1 = new String[] { "002703", "浙江世宝",
"2013-11-22", "19.17", "0.2702" };
private final String filename = "D:\\temp\\test.xls";
private void writerExcel() throws WriteException, FileNotFoundException,
IOException {
WritableWorkbook wwb = Workbook.createWorkbook(new FileOutputStream(
filename));
Label label;
WritableFont font = new WritableFont(WritableFont.createFont("Arial"));
font.setBoldStyle(WritableFont.BOLD);
WritableCellFormat wcTitle = new WritableCellFormat(font);
// 设置边框线
wcTitle.setBorder(Border.ALL, BorderLineStyle.THIN);
wcTitle.setBackground(jxl.format.Colour.ORANGE);
// 给内容单元格使用的格式化对象
WritableCellFormat wc = new WritableCellFormat();
// 设置边框线
wc.setBorder(Border.ALL, BorderLineStyle.THIN);
// 创建工作表
WritableSheet sheet1 = wwb.createSheet("报表", 0);
/* 写表头 */
for (int i = 0; i < titles.length; i++) {
// 列、行、内容、格式化对象,列与行都是从0开始编号。
label = new Label(i, 0, titles[i], wcTitle);
// 将定义好的单元格添加到工作表中
sheet1.addCell(label);
}
/* 写内容 */
label = new Label(0, 1, data1[0], wc);
sheet1.addCell(label);
label = new Label(1, 1, data1[1], wc);
sheet1.addCell(label);
label = new Label(2, 1, data1[2], wc);
sheet1.addCell(label);
// 写数值
WritableCellFormat wcnf1 = new WritableCellFormat(new NumberFormat("#.##"));
wcnf1.setBorder(Border.ALL, BorderLineStyle.THIN);
sheet1.addCell(new jxl.write.Number(3, 1, Double.valueOf(data1[3]), wcnf1));
//写百分数
WritableCellFormat wcnf2 = new WritableCellFormat(new NumberFormat("#.##%"));
wcnf2.setBorder(Border.ALL, BorderLineStyle.THIN);
sheet1.addCell(new jxl.write.Number(4, 1, Double.valueOf(data1[4]), wcnf2));
// 写入数据
wwb.write();
// 关闭文件
wwb.close();
}
private void readExcel() throws BiffException, IOException {
Workbook wb = Workbook.getWorkbook(new File(filename));
Sheet sheet1 = wb.getSheet(0);
int rows = sheet1.getRows();
for (int i = 0; i < rows; i++) {
Cell[] cells = sheet1.getRow(i);
if (cells != null && cells.length != 0) {
System.out.print("\t");
// 遍历单元格
for (int k=0;k<cells.length;k++) {
String cell = cells[k].getContents();
System.out.print(cell + "\t\t");
}
System.out.println();
}
}
System.out.println("共读取" + rows + "行。");
}
public static void main(String[] args) throws Exception {
JXLSample _this = new JXLSample();
System.out.println("开始创建Excel文件……");
_this.writerExcel();
System.out.println("Excel文件创建成功。");
System.out.println("开始读取Excel文件……");
_this.readExcel();
}
}
生成的Excel文件截图: