###発生している問題・エラーメッセージ
No 会社名 担当者名
といった感じに並んでいるタブ区切りの何百行とあるテキストデータを読み込んで、会社名別に担当者を振り分けたExcelファイルを作ろうと考え、ClosedXMLを利用してみました。ところが、13行目を読み込んだあたりでwb.SaveAs(tFiName);の箇所に、
同一のキーを含む項目が既に追加されています。
というエラーが表示され、書き込みができなくなります。当初テキストデータ自体が悪いのかと思い、エラーの出る行を冒頭に持っていくなど並べ替えてもみましたが、やはり13行目あたりで同じようなエラーがでています。結局別のファイルで試してみても似たような感じでエラーが出ました。
また、try catchでエラーを無視すると、3行ほどは同じようなエラーが出て、16行目あたりからは再び書き込みに成功し始めるようです。
ソースコードは下記のような感じです。1行読み込んで会社名からファイル名を生成、該当のファイルがなければマスターとなるExcelをコピー(tFiName)、そのファイルを開いて最終行に担当者名を追加、といった処理を加えています。
###該当のソースコード
C#
1tLine = sr.ReadLine();//StreamReaderでテキストデータを1行読み込み 2tList = tLine.Split('\t'); 3 4//tFiNameに生成したファイル名が入っています 5using (XLWorkbook wb = new XLWorkbook(tFiName)) 6using (IXLWorksheet ws = wb.Worksheet(2)) 7{ 8 row = ws.LastRowUsed().RowNumber() + 1; 9 for (int col = 1; col < tList.Length + 1; col++) 10 { 11 IXLCell cell = ws.Cell(row, col); 12 cell.Value = "'" + tList[col - 1]; 13 } 14 wb.SaveAs(tFiName); //ここに該当のエラーが表示されます 15 //wb.Save(); としても結果は一緒でした 16 //wb.Dispose(); を加えても結果は一緒でした 17} 18//ここまでをテキストデータ最終行が来るまで繰り返す
###補足情報(言語/FW/ツール等のバージョンなど)
Windows10
Visual Studio 2012
Windows Formsで作成しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。