因为参与的一个项目有一个任务,是对一个excel文件中的字符进行分隔,
如果将excel转成txt,可能会加大对字符的分隔难度,所以利用开源项目JExcelApi来操作。
下面简单演示下如何对excel进行读和写操作。
import jxl.*;
import jxl.write.*;
import java.io.*;
public class AccessExcel {
private String temp[];
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File(
"C://readbyjava.xls");
AccessExcel ae = new AccessExcel();
try {
ae.readExcel(file);
ae.writeExcel(
new File("C://test.xls"));
ae.analyzeData();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void readExcel(File file) throws Exception {
//获得所需要操作的文件的工作薄
jxl.Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
//将获得的行字符放到数组中去
temp=new String[sheet.getRows()];
// test whether or not the workbook is normal
for (int i = 0; i < sheet.getRows(); i++) {
Cell cell = sheet.getCell(0, i);
String content = cell.getContents();
System.out.println(content);
temp[i]=content;
}
//关闭工作薄
workbook.close();
}
//利用此方法进行字符的匹配或其它操作此处只为判断单元格不为空或者字符开头为“{”和“}”的字符,并打印所在的行号
public void analyzeData(){
for(int i=0;i<temp.length;i++){
if(temp[i]!="" && new String().valueOf((temp[i].charAt(0))).equals("{")||
temp[i]!="" && new String().valueOf((temp[i].charAt(0))).equals("}")){
System.out.println("this is what I need:"+i);
}
}
}
public void writeExcel(File file) throws Exception {
//打开工作薄
WritableWorkbook wwb = Workbook.createWorkbook(file);
//在工作薄中创建一个索引为2的sheet
WritableSheet ws = wwb.createSheet("secondSheet", 2);
//从另一张表中复制数据到此sheet
for(int i=0;i<temp.length;i++){
ws.addCell(new jxl.write.Label(0, i, temp[i]));
}
//记得要write,不然可能会抛出异常
wwb.write();
wwb.close();
}
}