Неполное преобразование .xls в .txt - PullRequest
0 голосов
/ 06 июля 2018

Здравствуйте, я делаю программу для преобразования из .xls в .txt. Моя программа работает почти до совершенства. Он вставляет в текст хорошо, но дело в том, что он не вставляет файл xls полностью. Он не вставляет последние 20 строк. Xls, который мне нужно преобразовать, содержит 1548 строк, из которых 1528 вставлены правильно в нужном мне формате. Мне кажется странным, что только 20 строк не вставляются. Есть идеи?

public class create_text_doc {
public void writing() {
    try {
        File textgen = new File("C:\\Users\\darroyo\\Desktop\\expru.txt");
        FileOutputStream fos = new FileOutputStream(textgen);
        OutputStreamWriter osw = new OutputStreamWriter(fos);    
        Writer w = new BufferedWriter(osw);

        String FilePath = "C:\\Users\\darroyo\\Desktop\\saldos_to_conv.xls";
        FileInputStream fs = new FileInputStream(FilePath);
        Workbook wb = Workbook.getWorkbook(fs);
        Sheet hoja = wb.getSheet("Contratos");
        int totalNoOfRows = hoja.getRows();
        int totalNoOfCols = hoja.getColumns();
        w.write("\n");
        for (int row = 1; row < totalNoOfRows; row++) {
            for (int col = 0; col < totalNoOfCols; col++) {
                System.out.print(hoja.getCell(col,row).getContents() + "\t");
                w.write("Deposito por Saldo Inicial|"+hoja.getCell(0,row).getContents()+"|EFECTIVO| | |0|0|0|0|0|0|0|"+hoja.getCell(1,row).getContents()+"|"+
                new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime())+"|0|"+
                new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime())+"|0|0|"+hoja.getCell(3,row).getContents()+"|"+
                new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime())+"|0|0\n");
            }
            System.out.println();
        }
    } catch (IOException e) {
        System.err.println("Problem writing txt file");
    } catch (BiffException e) {
        e.printStackTrace();
    }
}

public static void main(String[]args) {
    create_text_doc write = new create_text_doc();
    write.writing();
}
}

system.out.println в моем цикле for выводит все строки правильно, проблема в том, что я помещаю их в текстовый документ. Я думал, что это может быть проблемой, но после удаления мне все еще не хватает 20 строк.

...