Ist es Einschränkung der Verwendung von opencsv-API oder der Apache Poi Api?
Ich bin erstellen von Excel-Datei auf der basis von CSV-Datei.für das Lesen von CSV-Datei,ich bin mit Opencsv-API und Apache POI.In meiner csv enthalten 65537 Zeile.
class Test {
public static void main(String[] args) throws IOException {
Workbook wb = new HSSFWorkbook();
CreationHelper helper = wb.getCreationHelper();
Sheet sheet = wb.createSheet("new sheet");
CSVReader reader = new CSVReader(new FileReader("SampleData.csv"));
String[] line;
int r = 0;int count=0;
while ((line = reader.readNext()) != null) {
Row row = sheet.createRow((short) r++);
count=count+1;
System.out.println("count-"+count);
for (int i = 0; i < line.length; i++)
row.createCell(i)
.setCellValue(helper.createRichTextString(line[i]));
}
//Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
}}
wenn ich dieses Programm ausführen, gibt es mir folgenden Fehler:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid row number (-32768) outside allowable range (0..65535)at org.apache.poi.hssf.usermodel.HSSFRow.setRowNum(HSSFRow.java:232)
at org.apache.poi.hssf.usermodel.HSSFRow.<init>(HSSFRow.java:86)
at org.apache.poi.hssf.usermodel.HSSFRow.<init>(HSSFRow.java:70)
at org.apache.poi.hssf.usermodel.HSSFSheet.createRow(HSSFSheet.java:205)
at org.apache.poi.hssf.usermodel.HSSFSheet.createRow(HSSFSheet.java:71)
at com.arosys.utilityclasses.Test.main(Test.java:23)Java Result: 1
Ich habe versucht, zu verfolgen, wie viel Zeile, die es unterstützen, fand ich es nur unterstützen, 32768 und auch versucht, für eine geringere Anzahl von Zeilen,es funktioniert gut, und erstellen Sie excel-Datei.
bitte helfen Sie mir, heraus zu Sortieren das problem,wenn ich meine csv enthält 65536 Zeile dann wie ich bin bale zu schreiben, excel-Datei(Xls).
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum wirfst du die Zeile num zu kurz in der folgenden Zeile
Lassen es als int
Sieht aus wie es ist Ihre short-Wert. der max-Wert auf eine kurze ist 32767, und Sie versuchen, auf eine mehr als das.