最近使用jxl操作excel,期间遇到一些小问题。在这里,我将我学习时写的例子和大家分享,希望对你学习jxl有帮助。
【注意首先要导入jxl的jar包,请网上自行下载】
顺便说一下,poi也可以操作excel,如果想要了解,可以参考:http://blog.csdn.net/liu_005/article/details/49404477
【读excle】
这是我在一个小项目中用到的,使用的时候你需要根据你的需要修改一些细节。
总体思路是:用输入流构建工作文件—>获取工作簿—>获取需要的行—>获取行中需要的列
public static String[][] readExcel()
{
String[][] resultStrings = new String[ALLQUESTIONUM][7];
jxl.Workbook readwb = null;
try
{
// 直接从本地文件创建Workbook
InputStream instream = new FileInputStream(
"E:/2012年大学新生安全知识题库.xls");
readwb = Workbook.getWorkbook(instream);
// 获取第一张Sheet表
Sheet readsheet = readwb.getSheet(0);
// 获取Sheet表中所包含的总列数
int rsColumns = 6;
// 获取指定单元格的对象引用
// row代表要取题目的行号
for (int row = 0; row < ALLQUESTIONUM; row++)
{
// 设定题目编号为题目的实际编号,即为1-627
resultStrings[row][0] = String.valueOf(row + 1);
for (int col = 0; col < rsColumns; col++)
{
Cell cell = readsheet.getCell(col, row + 1);
// 将题目中的回车换行变成html中的换行
resultStrings[row][col + 1] = cell.getContents()
.replaceAll("[\\t\\n\\r]", "<br>");
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
readwb.close();
}
return resultStrings;
}
【写excel】
写excel比读的时候要稍微难一些,要利用输入流创建一个工作文件,然后利用这个工作文件创建一个可写的工作文件。然后在进行具体的写入操作:获取已写最大行数—>创建单元格并为其赋值—>最后写入文件
public static void writeExcle2(String[] resultStrings) throws BiffException, IOException, RowsExceededException, WriteException
{
Workbook wwb = Workbook.getWorkbook(new File("E:/Results.xls"));
WritableWorkbook book = Workbook
.createWorkbook(new File("E:/Results.xls"),
wwb);
jxl.write.WritableSheet ws = (WritableSheet) book.getSheet(0);
int rowNum = ws.getRows();
for (int k = 0; k < 4; k++)
{
Label label = new Label(k, rowNum, resultStrings[k]);
ws.addCell(label);
}
book.write();
book.close();
wwb.close();
}