Java将TXT上的数据转换成excel里面

 1 package test;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.IOException;
 7 import java.io.InputStreamReader;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 
11 import jxl.Workbook;
12 import jxl.write.Label;
13 import jxl.write.WritableSheet;
14 import jxl.write.WritableWorkbook;
15 import jxl.write.WriteException;
16 import jxl.write.biff.RowsExceededException;
17 
18 public class ConvertTxtExcel {
19     private static List<Account> list = new ArrayList<Account>();
20     private final static String TXTFILENAME = "F:\\\\myTxt.txt";
21     private final static String EXCELFILENAME = "F:\\\\myExcel.xls";
22 
23     public static void main(String[] args) {
24         getTxt();
25         txtToExcel();
26     }
27 
28     private static void txtToExcel() {
29         WritableWorkbook wwk = null;
30         try {
31             wwk = Workbook.createWorkbook(new File(EXCELFILENAME));
32             WritableSheet ws = wwk.createSheet("Test1", 0);
33             Label label1 = new Label(0, 0, "id");
34             Label label2 = new Label(1, 0, "user");
35             Label label3 = new Label(2, 0, "paw");
36             Label label4 = new Label(3, 0, "age");
37             // 将定义好的单元格添加到工作表中
38             ws.addCell(label1);
39             ws.addCell(label2);
40             ws.addCell(label3);
41             ws.addCell(label4);
42             /*
43              * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 
44              */
45             for (int i = 0; i < list.size(); i++) {
46                 Account p = list.get(i);
47                 jxl.write.Number id = new jxl.write.Number(0, (i + 1), p.getId());
48                 Label label5 = new Label(1, (i + 1), p.getUser());
49                 Label label6 = new Label(2, (i + 1), p.getPaw());
50                 jxl.write.Number age = new jxl.write.Number(3, (i + 1), p.getAge());
51                 ws.addCell(id);
52                 ws.addCell(label5);
53                 ws.addCell(label6);
54                 ws.addCell(age);
55             }
56             wwk.write();
57             wwk.close();
58         } catch (IOException e) {
59             e.printStackTrace();
60         } catch (RowsExceededException e) {
61             e.printStackTrace();
62         } catch (WriteException e) {
63             e.printStackTrace();
64         }
65         System.out.println("完成");
66     }
67 
68     private static List<Account> getTxt() {
69         try {
70             BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(TXTFILENAME), "utf-8"));
71             String line = "";
72             while ((line = br.readLine()) != null) {
73                 //TXT里面的数据都是用-隔开的,例如:1-haha-123123-12
74                 String[] arr = line.split("-");
75                 Account account = new Account(Integer.parseInt(arr[0]), arr[1], arr[2], Integer.parseInt(arr[3]));
76                 list.add(account);
77             }
78         } catch (NumberFormatException e) {
79             e.printStackTrace();
80         } catch (IOException e) {
81             e.printStackTrace();
82         }
83         return list;
84     }
85 }
ConvertTxtExcel

结果:

注意事项:需要导 jxl.jar

posted @ 2016-11-11 12:00  myNull  阅读(4394)  评论(0编辑  收藏  举报