0

winformベースのデスクトップ アプリケーションを構築しています。アプリケーションの一部として、Excel 出力を生成しています。

日付の値を入力しようとすると、エラーが発生します。

C# では、日付の値は"11-10-12". ただし、Excelでは、として印刷されてい10-11-2012ます。

これを行うコードは次のとおりです。

String Date1 = "11-10-12";
oSheet.Cells[i + 2, 1] = DateTime.ParseExact(Date1, "dd-MM-yy", CultureInfo.InvariantCulture).ToString("dd-MM-yyyy");

何が間違っている可能性がありますか?

編集

Excel のセル形式は、既定では [一般] でした。ただし、値が入力されると、日付に変更されます。

ここに画像の説明を入力

4

4 に答える 4

4

次のコマンドでExcelセルの形式を変更してみてください。

yourCellRange.NumberFormat = "dd-MM-yy"; 

または、文字列形式をExcel形式に調整します。

于 2013-01-18T15:06:00.053 に答える
1

残念ながら、どの提案も役に立ちませんでした。そこで、Excel で自動書式設定を無効にしました。

したがって、Excel で自動 (日付) 書式設定を無効にするコード スニペットは次のとおりです。

String Date1 = "11-10-12";
oSheet.Cells[i + 2, 1] = "'" + Date1;

したがって、トリックは、文字列の前にアポストロフィを付けることです。

ありがとう

于 2013-01-18T16:15:26.517 に答える
1

これをやってみてください

worksheet.get_Range(Cell1, Cell2 + worksheet.Rows.Count).NumberFormat = "dd-mmm-yyyy";

値を追加するときに試すことができます

worksheet.Cells[row, column] = String.Format("{0:dd-MMM-yyyy}", Date1);
于 2013-01-18T15:09:42.013 に答える
1

ただ試してみてください:

DateTime.Now.ToString("dd-MM-yy");

また:

String Date1 = "11-10-12";
var Format = "dd-MM-yy";
var TimeBuff = DateTime.ParseExact(Date1, Format, 
CultureInfo.InvariantCulture).ToString(Format);
oSheet.Cells[i + 2, 1] = TimeBuff;

Parse と ToString の両方に同じ Format が含まれている必要があります。同じ結果が得られた場合は、間違いなく Excel のエラーです。

編集:

証拠

DJ KRAZEのためだけに

証拠

于 2013-01-18T15:03:37.943 に答える