Требуется много времени, чтобы открыть рабочую книгу - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь прочитать файл Excel (xlsm as с макросами), все кажется правильным, но каким-то образом код занимает много времени для выполнения. Вот мой код:

public Map<String, ReportParameter> getParameters(String excelFileName) {

        File excelFile = new File(repo.getRepositoryPath() + File.separator + excelFileName);
        try (FileInputStream input_document = new FileInputStream(excelFile);
             XSSFWorkbook workbook = new XSSFWorkbook(input_document)) {
            XSSFSheet sheet = workbook.getSheet("parametre");
            Map<String, String> resultMap = new HashMap<>();
            Map<String, Integer> indexMap = new HashMap<>();

            int pos = 1;
            for (Row row : sheet) {
                Cell cell = row.getCell(0);
                if(cell == null) {
                    continue;
                }

                indexMap.put(cell.getStringCellValue(), pos++);
                resultMap.put(cell.getStringCellValue(), row.getCell(1).getStringCellValue());

            }

            return convertParameterTypesToReportParameters(resultMap, indexMap);
        } catch (Exception e) {
             throw new RuntimeException(e);
        }

Я также пытаюсь использовать OPCPackage, но результат тот же. Может кто-нибудь подсказать мне, почему это занимает много времени и есть ли что-то, что может улучшить производительность.

1 Ответ

0 голосов
/ 04 января 2019

Попробуйте это:

sub test()

Dim x as long, y as int 
'all of your Dims here


Application.ScreenUpdating = False

'
'
'your code here
'
'

Application.ScreenUpdating = True

end sub
...