java實現(從txt……)寫入execl
阿新 • • 發佈:2018-12-18
本文使用jxl,如果使用maven 直接引入即可。
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
注意: ecexl每個sheet工作表的資料資源容納6萬多一點,如果寫入資料超過6萬要注意生成追加新的sheet(程式碼以實現),
程式碼如下:
public static void main(String[] args) { File file = new File("D:\\江蘇幼兒家長.txt");// 將讀取的txt檔案 File file2 = new File("D:\\測試EXECL1.xls");// 將生成的excel表格 List<String> list = new ArrayList<String>(); if (file.exists() && file.isFile()) { InputStreamReader read = null; String line = ""; BufferedReader input = null; WritableWorkbook wbook = null; WritableSheet sheet; String [] work2 =new String[4]; int count=0; int s=0; try { read = new InputStreamReader(new FileInputStream(file), "UTF-8"); input = new BufferedReader(read); wbook = Workbook.createWorkbook(file2);// 根據路徑生成excel檔案 sheet = wbook.createSheet("資料"+s, s);// 新標籤頁 int m = 1;// excel行數 int n = 0;// excel列數 Label t; //execl有最大容量 //不能夠超過Excel的最大容量,如果超過會追加新的sheet //根據自己的情況自定義 int maxRowCount = 60000; while ((line = input.readLine()) != null) { try { Label company = new Label(0, 0, "家長ID");// 如下皆為列名 sheet.addCell(company); Label position = new Label(1, 0, "家長姓名"); sheet.addCell(position); Label salary = new Label(2, 0, "手機號"); sheet.addCell(salary); Label status = new Label(3, 0, "密碼"); sheet.addCell(status); } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } String[] words = line.split(",");// 把讀出來的這行根據,分割開 /** * 下面的if 是自己需要,需要對原先的讀的檔案進行篩選 然後寫入檔案 */ if(list.indexOf(words[12]) == -1 && words[11].equals("3")){ count++; work2[0]=generateRandomId(); work2[1]=words[14]; work2[2]=words[12]; work2[3]=""; list.add(words[12]); //======到此 自己需要========================= for (int i = 0; i < work2.length; i++) { if (!words[i].matches("\\s*")) { // 當不是空行時 t = new Label(n, m, work2[i].trim()); sheet.addCell(t); n++; } } n = 0;// 回到列頭部 m++;// 向下移動一行 } //如果sheet工作表的容量超出,則新追加一個 if(count> maxRowCount) { s++; sheet = wbook.createSheet("資料"+s, s);// 新標籤頁 count=0; m=0; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } finally { try { wbook.write(); wbook.close(); input.close(); read.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } System.out.println("over!"); System.exit(0); } else { System.out.println("file is not exists or not a file"); System.exit(0); } }