众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据。敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激!
不多言,小二上码咯。。。
通过 sheet_name 写入 EXCEL 数据源代码如下所示,敬请参阅!
/**
* @function 文件写入: EXCEL文件
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java excelWrite, 2014-11-25 16:03:35 Exp $
*
* @param filename : EXCEL文件名称
* @param sheetname : EXCEL文件sheet名字
* @param excelData : EXCEL文件内容, 二维数组
*
* @return boolean
*/
public boolean excelWrite(String filename, String sheetname, ArrayList<String[]> excelData){
FileOutputStream fos; // 文件输出流
WritableWorkbook excel; // Excel 工作薄
WritableSheet sheet; // Excel 工作表
Label label; // Excel 工作表单元格 Lable(col, row, content)
String[] colname; // Excel 工作表列头
String[] rowdata; // Excel 工作表行数据
// long start;
// long mid;
// long end;
boolean success = false; // start = System.currentTimeMillis(); /* 参数校验: 为null或空字符串时, 抛出参数非法异常 */
if (filename == null || "".equals(filename) || !assertFileType(filename, "EXCEL")) {
throw new IllegalArgumentException();
} /* 若工作表名称为null或空, 则默认工作表名与工作薄名相同 */
if (sheetname == null || "".equals(sheetname)) {
sheetname = filename;
} /* Excel 最大行列校验: xls 最大行列:65536, 256; XLSX 最大行列:1048576, 16384 */
if (filename.endsWith(".xls") && ((excelData.size() > 65536) || (excelData.get(0).length > 256))) {
this.message = "数据超过 " + filename + " 文件的最大行列【65536, 256】, 数据行列为【" + excelData.size() + ", " + excelData.get(0).length + "】";
this.logger.warn(this.message); return success;
} else if (filename.endsWith(".xlsx") && ((excelData.size() > 1048576) || (excelData.get(0).length > 16384))) {
this.message = "数据超过 " + filename + " 文件的最大行列【1048576, 16384】, 数据行列为【" + excelData.size() + ", " + excelData.get(0).length + "】";
this.logger.warn(this.message); return success;
} try {
fos = new FileOutputStream(filename); // 创建文件输出流
excel = Workbook.createWorkbook(fos); // 创建 Excel 工作薄
sheet = excel.createSheet(sheetname, 0); // 创建 Excel 工作表 /* 若数据为空, 则仅创建 Excel 文件 */
if (excelData.isEmpty() || excelData.size() == 0) {
excel.write();
excel.close();
fos.close(); success = true;
return success;
} /* 数据不为空, 则将数据第一行默认视作列头 */
colname = excelData.get(0); /* 写入工作表列头 */
for (int i = 0; i < colname.length; i++) {
label = new Label(i, 0, colname[i], this.excelSetCellCssForColname());
sheet.addCell(label);
} /* 遍历数组, 写入数据 */
for (int i = 1; i < excelData.size(); i++) { // 行处理
rowdata = excelData.get(i); for (int j = 0; j < colname.length; j++) {// 列处理
label = new Label(j, i, rowdata[j], this.excelSetCellCss());
sheet.addCell(label);
}
} // mid = System.currentTimeMillis(); excel.write();
excel.close();
fos.close(); // end = System.currentTimeMillis(); // System.out.println("Excel {" + filename + "} 数据解析共耗时 " + (mid - start) + " s");
// System.out.println("Excel {" + filename + "} 数据写入共耗时 " + (end - mid) + " s");
// System.out.println("Excel {" + filename + "} 数据写入共耗时 " + (end - start) + " s"); success = true;
} catch (FileNotFoundException fnfe) {
this.message = "文件 {" + filename + "} 不存在!";
this.logger.error(this.message, fnfe);
} catch (RowsExceededException ree) {
this.message = "文件 {" + filename + "} 写入失败!";
this.logger.error(this.message, ree);
} catch (WriteException we) {
this.message = "文件 {" + filename + "} 写入失败!";
this.logger.error(this.message, we);
} catch (IOException ioe) {
this.message = "文件 {" + filename + "} 写入失败!";
this.logger.error(this.message, ioe);
} return success;
}
Excel 文件写入源码
输出的 excel 文件如下所示:
aaarticlea/png;base64,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" alt="" />
上述代码中调用的设置 EXCEL 文件列头样式的源码如下所示,敬请参阅!
/**
* @function 设置EXCEL列头样式
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java excelSetCellCssForColname, 2014-11-25 5:52:42 Exp $
*
* @return WritableCellFormat
*/
public WritableCellFormat excelSetCellCssForColname(){
WritableCellFormat cssFormat;
WritableFont font; /* 设置字体, 大小, 字形 */
font = new WritableFont(WritableFont.createFont("Courier New"), 20, WritableFont.BOLD); try {
font.setColour(Colour.BLUE); // 设置字体颜色
} catch (WriteException we) {
we.printStackTrace();
} /* 设置单元格格式布局 */
cssFormat = new WritableCellFormat(font); try {
cssFormat.setAlignment(jxl.format.Alignment.CENTRE); // 水平居中
cssFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 垂直居中
cssFormat.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK); // 黑色边框
cssFormat.setBackground(Colour.YELLOW); // 黄色背景 return cssFormat;
} catch (WriteException we) {
this.message = "设置 excel 列头样式失败!";
this.logger.error(this.message, we);
} return cssFormat;
}
设置 EXCEL 文件列头样式
调用设置 EXCEL 文件单元格样式的源码如下所示,敬请参阅!
/**
* @function 设置EXCEL单元格样式
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java excelSetCellCss, 2014-11-25 17:53:35 Exp $
*
* @return WritableCellFormat
*/
public WritableCellFormat excelSetCellCss(){
WritableCellFormat cssFormat;
WritableFont font; /* 设置字体, 大小, 字形 */
font = new WritableFont(WritableFont.createFont("Courier New"), 16, WritableFont.NO_BOLD); try {
font.setColour(Colour.BLUE); // 设置字体颜色
} catch (WriteException we) {
we.printStackTrace();
} /* 设置单元格格式布局 */
cssFormat = new WritableCellFormat(font); try {
cssFormat.setAlignment(jxl.format.Alignment.LEFT); // 水平靠左
cssFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 垂直居中
cssFormat.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK); // 黑色边框 return cssFormat;
} catch (WriteException we) {
this.message = "设置 excel 单元格格式失败!";
this.logger.error(this.message, we);
} return cssFormat;
}
设置 EXCEL 单元格样式
Excel 文件写入测试脚本如下所示,敬请参阅!
/**
* Test : excel write
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java test_excelWrite, 2014-11-25 16:23:35 Exp $
*
*/
@Test
public void test_excelWrite(){
this.message = "\n\n\nTEST:FileUtils.excelWrite(String filename, String sheetname, ArrayList<String[]> excelData)";
this.logger.debug(this.message); this.fu = new FileUtils();
String filename = this.constantslist.PROJECTHOME + this.constantslist.FILESEPARATOR +
"testng-temp" + this.constantslist.FILESEPARATOR + "excelWrite.xls"; ArrayList<String[]> exceldata = new ArrayList<String[]>();
String[] rows; // init excel data
for (int i = 0; i < 20; i++) {
rows = new String[10]; for (int j = 0; j < rows.length; j++) {
rows[j] = i + " = " + j;
} exceldata.add(rows);
} boolean w = this.fu.excelWrite(filename, "excelWrite", exceldata);
boolean r = this.fu.excelReadByName(filename, "excelWrite", 0).get(5)[7].equals("5 = 7"); Assert.assertEquals(w, r, "Test case failed.");
}
Excel 写入方法测试源代码
测试源码执行结果如下所示:
aaarticlea/png;base64,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" alt="" />
至此, Java学习-018-EXCEL 文件写入实例源代码 顺利完结,希望此文能够给初学 Java 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^