Révision 2088
tmp/org.txm.libs.office/src/org/txm/libs/office/ReadODS.java (revision 2088) | ||
---|---|---|
87 | 87 |
ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>(); |
88 | 88 |
|
89 | 89 |
//int rowCount = table.getRowCount(); |
90 |
|
|
91 |
// findout maximum line length |
|
92 |
int sMax = 0; |
|
90 | 93 |
for (Row row : table.getRowList()) { |
94 |
TableTableRowElement elem = row.getOdfElement(); |
|
95 |
NodeList children = elem.getChildNodes(); |
|
96 |
int s = children.getLength(); //FIXME row.getCellCount() takes too much time |
|
97 |
if (sMax < s) sMax = s; |
|
98 |
} |
|
99 |
for (Row row : table.getRowList()) { |
|
91 | 100 |
ArrayList<String> dataline = new ArrayList<>(); |
92 | 101 |
data.add(dataline); |
93 | 102 |
//Row row = table.getRowByIndex(it); |
94 | 103 |
//int colCount = row.getCellCount(); |
95 |
TableTableRowElement elem = row.getOdfElement(); |
|
96 |
NodeList children = elem.getChildNodes(); |
|
97 |
int s = children.getLength(); //FIXME row.getCellCount() takes too much time |
|
98 |
NodeList elems = elem.getElementsByTagName("table:table-cell"); |
|
99 |
int size = elems.getLength(); |
|
100 |
for (int j = 0 ; j < size ; j++) { |
|
104 |
//TableTableRowElement elem = row.getOdfElement(); |
|
105 |
//NodeList children = elem.getChildNodes(); |
|
106 |
//int s = children.getLength(); //FIXME row.getCellCount() takes too much time |
|
107 |
//System.out.println("line size="+s); |
|
108 |
//NodeList elems = elem.getElementsByTagName("table:table-cell"); |
|
109 |
// int size = elems.getLength(); |
|
110 |
for (int j = 0 ; j < sMax ; j++) { |
|
101 | 111 |
String cell = row.getCellByIndex(j).getDisplayText(); |
102 | 112 |
if (cell == null) { |
103 | 113 |
dataline.add(""); |
104 | 114 |
} else { |
105 |
dataline.add(cell); |
|
115 |
dataline.add(cell.replaceAll("\n", ";").trim());
|
|
106 | 116 |
} |
107 | 117 |
} |
108 | 118 |
} |
... | ... | |
111 | 121 |
} |
112 | 122 |
|
113 | 123 |
public static void main(String[] args) throws Exception { |
114 |
File file = new File("/home/mdecorde/TXM/scripts/macro/org/txm/macro/atelier_txm_participants190327.ods"); |
|
115 |
System.out.println(toTable(file, "metadata")); |
|
124 |
File file = new File("/home/mdecorde/xml/ruscorpora1m-test/metadata.ods"); |
|
125 |
ArrayList<ArrayList<String>> table = toTable(file, "metadata"); |
|
126 |
for (ArrayList<String> line : table) { |
|
127 |
System.out.print(line.get(0)+", "); |
|
128 |
} |
|
116 | 129 |
//Metadatas m = new Metadatas(file, ) |
117 | 130 |
} |
118 | 131 |
} |
tmp/org.txm.libs.msoffice/src/org/txm/libs/msoffice/ReadExcel.java (revision 2088) | ||
---|---|---|
4 | 4 |
import java.util.ArrayList; |
5 | 5 |
|
6 | 6 |
import org.apache.poi.ss.usermodel.Cell; |
7 |
import org.apache.poi.ss.usermodel.CellType; |
|
7 | 8 |
import org.apache.poi.ss.usermodel.Row; |
8 | 9 |
import org.apache.poi.ss.usermodel.Sheet; |
9 | 10 |
import org.apache.poi.ss.usermodel.Workbook; |
... | ... | |
15 | 16 |
* |
16 | 17 |
* @param inputFile |
17 | 18 |
* @param sheetName |
18 |
* @return list of lines (line = list of cells) |
|
19 |
* @return list of lines (line = list of cells) with values converted to String
|
|
19 | 20 |
*/ |
20 | 21 |
public static ArrayList<ArrayList<String>> toTable(File inputFile, String sheetName) { |
21 | 22 |
|
... | ... | |
27 | 28 |
} |
28 | 29 |
|
29 | 30 |
try { |
30 |
|
|
31 |
|
|
32 | 31 |
Workbook wb = WorkbookFactory.create(inputFile); |
33 | 32 |
Sheet ws; |
34 | 33 |
if (sheetName == null || sheetName.length() == 0) { |
... | ... | |
63 | 62 |
for (int colIndex = 0 ; colIndex < colMax ; colIndex++) { |
64 | 63 |
Cell cell = row.getCell(colIndex); |
65 | 64 |
if (cell != null) { |
66 |
String value = cell.getStringCellValue().replaceAll("\n", ";").trim();
|
|
65 |
String value = cellToString(cell).replaceAll("\n", ";").trim();
|
|
67 | 66 |
dataLine.add(value); |
68 | 67 |
} else { |
69 | 68 |
dataLine.add(""); |
70 | 69 |
} |
71 | 70 |
} |
72 | 71 |
} |
73 |
|
|
74 | 72 |
} catch (Exception e) { |
75 | 73 |
System.out.println("** Excel2XML: unable to read input file. Aborting."); |
76 | 74 |
System.out.println( e.getLocalizedMessage()); |
... | ... | |
80 | 78 |
|
81 | 79 |
return data; |
82 | 80 |
} |
83 |
|
|
81 |
|
|
82 |
/** |
|
83 |
* |
|
84 |
* @param cell |
|
85 |
* @return always a String starting with '#' if an error occurs |
|
86 |
*/ |
|
87 |
public static String cellToString(Cell cell) { |
|
88 |
switch (cell.getCellTypeEnum()) { |
|
89 |
case FORMULA: |
|
90 |
return "#formulla"; |
|
91 |
case NUMERIC: |
|
92 |
return ""+cell.getNumericCellValue(); |
|
93 |
case STRING: |
|
94 |
return cell.getStringCellValue(); |
|
95 |
case BLANK: |
|
96 |
return ""; |
|
97 |
case BOOLEAN: |
|
98 |
return ""+cell.getBooleanCellValue(); |
|
99 |
case ERROR: |
|
100 |
return "#error"; |
|
101 |
default: |
|
102 |
return "#typeerror"; |
|
103 |
} |
|
104 |
|
|
105 |
} |
|
106 |
|
|
84 | 107 |
public static void main(String[] args) { |
85 |
ArrayList<ArrayList<String>> data = toTable(new File("/home/mdecorde/xml/metadata.xlsx"), null); |
|
108 |
ArrayList<ArrayList<String>> data = toTable(new File("/home/mdecorde/xml/ruscorpora1m-test/metadata.xlsx"), null);
|
|
86 | 109 |
if (data.size() == 0) { |
87 | 110 |
System.out.println("no data."); |
88 | 111 |
} else { |
tmp/org.txm.libs.msoffice/META-INF/MANIFEST.MF (revision 2088) | ||
---|---|---|
19 | 19 |
lib/poi-scratchpad-3.17.jar, |
20 | 20 |
lib/xmlbeans-2.6.0.jar, |
21 | 21 |
. |
22 |
Export-Package: org.txm.libs.msoffice |
Formats disponibles : Unified diff