ReadXls类:导入jxl.jar 实现对Excel的基本操作
package dataProcessing;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import jxl.*;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ReadXls {
int tmp_num = 3;
public File[] readfolder(String filepath){
String files = filepath;
File file = new File(files);
File[] dir = file.listFiles();// 取得文件列表
return dir;
}
public List<List<String>> read(String folderpath, String filename) {
List<String> res ;
List<List<String>> result = new ArrayList<List<String>>();
filename = folderpath + '/' + filename;
try {
Workbook book = Workbook.getWorkbook(new File(filename));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
for (int i = 0; i < sheet.getRows(); i = i + tmp_num) {
res = new ArrayList<String>();
for (int j = i; j < i + tmp_num; j++) {
if(j > sheet.getRows()-1) break;
Cell cell = sheet.getCell(0, j);
String content = cell.getContents();
// System.out.println(content);
res.add(content);
}
result.add(res);
}
// System.out.println(result);
book.close();
} catch (Exception e) {
System.out.println(e);
}
return result;
}
public void write(List<List<String>> result ,String folderpath , String filename ) {
String absolute_address = folderpath +'/' + filename;
//创建新文件名称
String[] tmp_absolute_address=absolute_address.split(".xls");
String targetfile = "";
//链接用split断成几段的地址
for (int i = 0; i < tmp_absolute_address.length; i++) {
targetfile = targetfile + tmp_absolute_address[i];
}
targetfile = targetfile + ".xls";
System.out.println(targetfile);
WritableWorkbook workbook = null;
try {
Workbook wb = Workbook.getWorkbook(new File(folderpath+"/emp.xls"));
// 打开一个文件的副本,并且指定数据写回到原文件
workbook = Workbook.createWorkbook(new File(targetfile), wb);
// 获得第一个工作表对象
WritableSheet sheet = workbook.getSheet(0);
// 得到第一列第一行的单元格
List<String> tmp_list = new ArrayList<String>() ;
for (int i = 0; i < result.size(); i++) {
tmp_list = result.get(i);
System.out.println(tmp_list);
for(int j = 0 ; j < tmp_list.size() ; j ++ ){
jxl.write.Label label = new jxl.write.Label(j, i, tmp_list.get(j));
System.out.print(' ' + tmp_list.get(j));
sheet.addCell(label);
}
}
// jxl.write.Label label = new jxl.write.Label(3, 3, "DECdddddd");
// 写入数据并关闭文件
// sheet.addCell(label);
workbook.write();
workbook.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Handler类:调用函数,实现功能
package dataProcessing;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Handler {
public static void main(String args[]) {
ReadXls reader = new ReadXls();
String folderpath = "E:/data_process/NU/3"; // 文件夹路径
String output_folderpath = "E:/data_process/NU_1/3"; // 文件夹路径
File[] dir = reader.readfolder(folderpath);
List<List<String>> result;
for (int i = 0; i < dir.length; i++) {// 遍历文件
String fileName = dir[i].getName();
result = new ArrayList<List<String>>();
result = reader.read(folderpath, fileName);
reader.write(result, output_folderpath, fileName);
}
}
}