2017-03-25 52 views
1

私はspringバッチで消費するcsvファイルを持っています。列ヘッダー(名前)は、顧客によって異なる場合があります。 FlatFileItemReaderを使用してデータを読み込むとき、最初の行(ヘッダー)列名にトークン名を設定するにはどうすればよいですか?私はフローを設定するためにJava Configurationを使用しています。スプリングバッチ:CSVファイルの最初の行の見出し(ヘッダー)をファイルリーダーのトークン名に設定する方法

は、任意のコメント/提案を感謝

+1

あなたは、あなたの答えを編集し、あなたの関連部分を追加してくださいすることができJava Config? –

答えて

1

一つの解決策は、FlatFileItemReader::setLinesToSkip方法でCSVファイルの最初の行を破棄することができます。あなたは以下のように使用することができます

flatFileItemReader.setLinesToSkip(1); 
0

:次のような

<bean id="flatFileItemReader" 
    class="org.springframework.batch.item.file.FlatFileItemReader"> 
<!-- linesToSkip => The number of lines to skip at the beginning of the 
    file. This feature is particularly useful to handle file headers. --> 
<property name="linesToSkip" value="1" /> 
0

をあなたはLineToSkipプロパティを設定する必要があります。

@Component 
    @JobScope 
    public class CsvToDbItemReader extends FlatFileItemReader<BillDTO> { 
      public CsvToDbItemReader(@Value("#{jobParameters}") Map jobParameters) 
    { 
       String uploadDate = (String) jobParameters.get("uploadDate"); 
       this.setResource(new FileSystemResource(getFileName(uploadDate))); 
       this.setLinesToSkip(1); //set header line 
       LineMapper<BillDTO> lineMapper = createBillLineMapper(); 
       this.setLineMapper(lineMapper); 
      } 
    } 
関連する問題