话不多说,先上工具类。里面的逻辑是将读到的数据转存list再进行插入excel、如果是读数据库 也可以将里面的逻辑改成遍历实体类。道理是一样的。
public class ExcelUtil {
public static boolean DataToExcel(String excelName,String excelPath, String sheet, int rowNum, List titleName,
List data, int num) throws IOException{
boolean flag = false;
WritableWorkbook wwb = null;
try {
File file1 = new File(excelPath);
if (!file1.exists()) {
file1.mkdir();
}
File file = new File(file1, excelName);
if (!file.exists()) {
file.createNewFile();
}
//以fileName为文件名来创建一个Workbook
wwb = Workbook.createWorkbook(file);
// 创建工作表sheet
WritableSheet ws = wwb.createSheet(sheet, 0);
//要插入到的Excel表格的行号,默认从0开始
for (int i = 0; i < rowNum; i++) {
Label label = new Label(i, 0, titleName.get(i));
ws.addCell(label);
}
for (int i = 0; i < data.size(); i++) {
for (int j = 0; j < num; j++) {
ws.addCell(new Label(j, i + 1, data.get(i).split(",")[j]));
}
}
wwb.write();
flag = true;
// 关闭Excel工作簿对象
wwb.close();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
测试:我说读本地文件,进行测试
public class testDownExcel {
public static void main(String[] args) throws Exception {
List titleName = new ArrayList();
titleName.add("编码");
titleName.add("名称");
titleName.add("简码");
titleName.add("税号");
titleName.add("地址电话");
titleName.add("银行账号");
titleName.add("邮件地址");
titleName.add("备注");
titleName.add("身份证校验");
List list = ExcelUtil.readTxtFileToList("C:\Users\86187\Desktop\xxx客户编码.txt");
String excelPath = "D:\test\record";
boolean sheet1 = ExcelUtil.DataToExcel("kf.xls", excelPath, "sheet1", 9, titleName, list, 9);
if (sheet1 == true){
System.out.println("excel生成成功!!!");
}else {
System.out.println("excel生成失败!!!");
}
}
}
读取本地文件的方法
public static ListreadTxtFileToList(String filePath) { //存放内容的map对象 List strings = new ArrayList<>(); try { String encoding = "GBK"; File file = new File(filePath); int count = 0;//定义顺序变量 if (file.isFile() && file.exists()) { // 判断文件是否存在 InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; while ((lineTxt = bufferedReader.readLine()) != null) {//按行读取 if (!"".equals(lineTxt)) { strings.add(lineTxt);//放入list count++; } } // System.out.println("count:"+count); read.close();//关闭InputStreamReader bufferedReader.close();//关闭BufferedReader } else { System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } return strings; }
完成!!



