Прочитать файл Excel в Java, исключая первый ряд - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь автоматически создавать отчеты из шаблона JasperReport, который использует файлы xlsx, метод, который я использую для чтения из файла Excel, таков:

String[] columnNames = new String[]{"arg1", "arg2", "arg3", "arg4", "arg5"};
int[] columnIndexes = new int[]{0, 1, 2, 3, 4};
ds = new JRXlsxDataSource(JRLoader.getLocationInputStream("../Book2.xlsx"));
            ds.setColumnNames(columnNames, columnIndexes);

Но проблема в том, чтоФайл Excel должен содержать только данные, и я должен вручную определить столбцы, мой вопрос заключается в том, как прочитать столбцы непосредственно из первой строки, а затем ввести оставшуюся часть файла в метод JRXlsxDataSource (если он не исключен, он сгенерируетошибка типа, ожидающая Long, но получающая String)?Спасибо

ОБНОВЛЕНИЕ: Я попытался получить первую строку, а затем удалить ее, но не могу сохранить файл, поскольку POI не позволяет вносить изменения в файл:

public static void removeRow(HSSFSheet sheet, int rowIndex) {
        int lastRowNum=sheet.getLastRowNum();
        if(rowIndex>=0&&rowIndex<lastRowNum){
            sheet.shiftRows(rowIndex+1,lastRowNum, -1);
        }
        if(rowIndex==lastRowNum){
            HSSFRow removingRow=sheet.getRow(rowIndex);
            if(removingRow!=null){
                sheet.removeRow(removingRow);
            }
        }
    }

    public static String[] getRow(HSSFSheet sheet) {
        String[] values = null;
        for (int i=0; i<5;i++){
            values[i]=sheet.getRow(0).getCell(0).toString();    
        }
        return values;

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...