複数シート存在するxlsファイルの別シートを削除し、1シートのみ残す処理を行っています。
該当セルは削除するシートのセルを参照するようになっているため、シートの削除前に値をコピーしていますが
コピー後のセルで"数値が文字列として保存されています"のエラーが表示されます。
処理としては
セルの実際の値をコピー後、不要な2~3シート目を削除
cell.PutValue(cell.StringValue)
wb.Worksheets.RemoveAt(1)
wb.Worksheets.RemoveAt(2)
にて行っております。
加工前と加工後のExcelを添付しますのでエラーが出なくなる方法を教えていただけますか。
問い合わせ用Excel.zip (381.4 KB)
@Kitamura,
実行可能なコンソールエンジニアリングを提供したいですか。私は以下のコードテストに合格して、#REFを手に入れました!
Workbook wb = new Workbook(filePath + "壛岺慜Excel.xls");
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Copy(wb.Worksheets[0]);
wb.Worksheets.RemoveAt(2);
wb.Worksheets.RemoveAt(1);
workbook.Save(filePath + "out.xls");
@John.He
コンソールアプリを添付します。
bin\Debug\net5.0\File\test.xlsを bin\Debug\net5.0\File\test2.xlsに変換しています。
test2.xlsのCシートのF3セルが処理したセルとなります。
ConsoleApp2.zip (7.2 MB)
@Kitamura,
コンソール工程で以下のコードを注釈してください
‘style.Custom = ""
@John.He
コメント化して実行しましたがエラーは消えません。04071.png (15.6 KB)
@Kitamura,
次のコードを変更:
cell.PutValue(cell.StringValue)
変更後:
cell.PutValue(cell.Value)
@John.He
cell.PutValue(cell.Value)にて対応できました。ありがとうございます。
@Kitamura,
どういたしまして。何か質問があれば、いつでも連絡してください。