最近写的一个小项目需要把txt文件里面的内容转化成excel,经过查寻资料发现现阶段Java操作Excel的JAR主要有apache 的POI及jxl.Jxl方便快捷,POI用于对复杂Excel的操作。
public static void addDataToExcel(String[] dataArr,String filepath) throws IOException, RowsExceededException, WriteException{
//构建Workbook对象, 只读Workbook对象,创建可以写入的excel工作薄
WritableWorkbook book= Workbook.createWorkbook(new File(filepath));
//生成名为“统计”的工作表,参数0表示这是第一页
WritableSheet sheet=book.createSheet("统计",0);
//循环数据,此为一段代码,用于读取每一行的数据。每一行的数据格式为???:???:????:????
for(int rowC=0;rowC){
String data = dataArr[rowC];
String[] Arr = data.split("::");//将读取到的行数据进行分割
for(int i=0;i){
Label lable = new Label(rowC, i, Arr[i]);//将创建每一格的数据,其中row为int,表示第几行,0表示第一行 ,而i则表示第几列。
sheet.addCell(lable);//将内容加入到excel中
}
}
book.write();
book.close();
}
// 获得工作薄(Workbook)中工作表(Sheet)的个数
int sheets = workbook.getNumberOfSheets();
System.out.println(sheets);
//返回工作薄(Workbook)中工作表(Sheet)对象数组
Sheet[] sheetStringArr = workbook.getSheets();
for(int i=0;i){
System.out.println(sheetStringArr[i].getName()); //返回Sheet标题
System.out.println(sheetStringArr[i].getColumns());//Sheet页的总列数
System.out.println(sheetStringArr[i].getColumn(0));//Sheet页的某一列的数组
System.out.println(sheetStringArr[i].getRows());//Sheet页的总行数
System.out.println(sheetStringArr[i].getRow(0));//Sheet页的某一行的数组
}
Sheet sheet = workbook.getSheet(0); //用下标获得第一页
// 返回第一行,第一列的值
Cell cell00=sheet.getCell(0, 0);
System.out.println(cell00.getType()); //获得代表类的类型 (返回类的类型)
System.out.println(cell00.getContents());//获得代表类的类型 (返回string)
//判断返回值类型
if(CellType.DATE==cell00.getType()){
System.out.print("是日期类"+cell00.getType());//Date()
}
if(CellType.LABEL==cell00.getType()){
System.out.print("是标签类"+cell00.getType());//Lable()
}
if(CellType.NUMBER==cell00.getType()){
System.out.print("是日期类"+cell00.getType());//Number()
}
//关闭对象
workbook.close();