1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.student.enrollment.class2.courseoffering.refdata;
18
19 import org.apache.log4j.Logger;
20 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
21
22 import java.io.File;
23 import java.io.FileNotFoundException;
24 import java.util.ArrayList;
25 import java.util.Arrays;
26 import java.util.List;
27 import java.util.Scanner;
28
29
30
31
32
33
34 public class BasicCSVParser {
35 private static final Logger LOGGER = Logger.getLogger(BasicCSVParser.class);
36
37
38
39
40
41
42
43 public static SpreadsheetData parseSimpleCSV(String filename) throws FileNotFoundException, InvalidParameterException {
44 if (filename == null) {
45 return null;
46 } else if (!filename.toLowerCase().endsWith(".csv")) {
47 LOGGER.warn(filename + " does not end in .csv");
48 return null;
49 }
50 File file = new File(filename);
51 Scanner scanner = new Scanner(file);
52 SpreadsheetData data = new SpreadsheetData();
53 boolean hasProcessedHeader = false;
54 while (scanner.hasNextLine()) {
55 String line = scanner.nextLine();
56 if (line.trim().isEmpty()) {
57 continue;
58 }
59 String[] row = line.split(",");
60 List<String> rowList = new ArrayList<String>(Arrays.asList(row));
61 for (int i = 0; i < rowList.size(); i++) {
62 rowList.set(i, rowList.get(i).trim());
63 }
64 if (!hasProcessedHeader) {
65 data.addHeaders(rowList);
66 hasProcessedHeader = true;
67 } else {
68 data.addRow(rowList);
69 }
70 }
71 return data;
72 }
73 }