从文本文件parsing数据并创build一个Excel电子表格

我试图从.txt文件中获取特定的数据,并以特定的方式填充Excel电子表格。 我的代码从优雅,有很多OOP原则到下面的代码,蛮力和粗暴。 我现在正在testing(现在只是extesion),它只会在电子表格中添加第一个数字。

这是报告假设的样子

View post on imgur.com

这里是来自文本文件im的sorting通过的原始数据

View post on imgur.com

原始数据不一致(希望这会使得它更容易)例如:一些分机号码有多个向量/步骤#

import java.io.*; import java.util.Scanner; import java.util.Date; import jxl.*; import jxl.write.*; import jxl.write.biff.RowsExceededException; public class ReadFromFile { public static void main(String[] args) throws IOException, RowsExceededException, WriteException { // Location of file to read File raw = new File("reports1.txt"); //File rawNoQ = new File("rawNoQ.txt"); Scanner scanner = new Scanner(raw); WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls")); WritableSheet sheet = workbook.createSheet("First Sheet", 0); int extensionNum = 0; int vectorNum = 0; int stepNum = 0; int vdnNum = 0; boolean voaExt = false; int rowNum = 0; int colNum =0; //int tempN = 0; //String tempS = ""; //boolean Anouncment =false; while (scanner.hasNextLine()) { extensionNum = 0; vectorNum = 0; stepNum = 0; vdnNum = 0; voaExt = false; //finds extension number if (scanner.findInLine("usa e ") != null) { extensionNum = scanner.nextInt(); System.out.println(extensionNum + " <----- Extension Number"); ExtWrite(workbook,sheet,colNum,rowNum,Integer.toString(extensionNum)); rowNum++; } //finds VDN Number if (scanner.findInLine("VDN Number") != null) { scanner.next(); scanner.useDelimiter("\""); scanner.next(); vdnNum = scanner.nextInt(); System.out.println(vdnNum + " <----- VDN Number"); scanner.reset(); voaExt = true; } //finds vector number if (scanner.findInLine("Vector Number") != null) { scanner.next(); scanner.useDelimiter("\""); scanner.next(); vectorNum = scanner.nextInt(); System.out.println(vectorNum + " <----- Vector Number"); scanner.reset(); scanner.next(); scanner.next(); scanner.useDelimiter("\""); scanner.next(); stepNum = scanner.nextInt(); System.out.println(stepNum + " <----- Step Number"); scanner.reset(); } scanner.nextLine(); } //end of while loop workbook.close(); } public static void ExtWrite(WritableWorkbook workbook, WritableSheet sheet, int colNum, int rowNum, String extension) throws IOException, RowsExceededException, WriteException { Label label1 = new Label(colNum, rowNum, extension ); sheet.addCell(label1); workbook.write(); } }