Шаг заморозить. PoiItemreader не читает файл Excel, когда файл большой. Любое предложение? - PullRequest
0 голосов
/ 27 января 2020

Я попытался обработать файл Excel с помощью PoiItemreader в Spring Batch. Программа работает успешно, когда файл Excel меньше или имеет нормальный размер. Однако, когда я попытался обработать файл большего размера (больше, чем 12 МБ). Файл не читается вообще.

У меня есть следующие вопросы:

  1. Каков предел размера файла для использования PoiItemreader?
  2. Будет ли работать MultiResourcePartioner с этим сценарием проблемы?

Большое спасибо.

Вот мой код:

@Configuration
@EnableBatchProcessing
public class BatchConfiguration {

    @Autowired
    public JobBuilderFactory jobBuilderFactory;
    @Autowired
    public StepBuilderFactory stepBuilderFactory;

    @Bean
    public Job csvProcessJob() throws FileNotFoundException {
        return jobBuilderFactory.get("csvProcessJob")
                .incrementer(new RunIdIncrementer())
                .flow(csvProcessStep())
                .end()
                .build();
    }

    @Bean
    public Step csvProcessStep() throws FileNotFoundException {
        return stepBuilderFactory.get("stepCSVprocess")
                .<String, Map<String, AttributeValue>> chunk(25)
                .reader(excelReader())
                .processor(processor())
                .writer(writer())
                .build();
    }

    @Bean
    public PoiItemReader excelReader() throws FileNotFoundException {
        PoiItemReader reader = new PoiItemReader();
        reader.setLinesToSkip(1);
        reader.setResource(new ClassPathResource("file_name.xls"));
        reader.setRowMapper(excelRowMapper());
        return reader;
    }

    private RowMapper<MetaData> excelRowMapper() {
        return new MetaDataRowMapper();
    }

    @Bean
    public ItemProcessor<MetaData,Map<String,AttributeValue>> processor() {
        return new MapProcessor();
    }

    @Bean
    public ItemWriter writer() {
        return new AWSwriter();
    }

1 Ответ

0 голосов
/ 27 января 2020

Обновление моего вопроса. Я перехожу по ссылке в комментарии к сообщению М. Дейнма и могу отправить его на свой собственный читатель. Теперь программа работает должным образом с обратной стороны, что она работает только с .xlsx, а не .xls

...