2

特定の日付を指定して、DateTime オブジェクトを使用してセルのを設定したいのですが、「時刻」情報はありません。たとえば、今日の値は"29/06/2012 16:54:36" ではなく"29/06/2012"なります。

表示に関しては、今日の日付を次のように書きたいと思います(フランス語で、英語でどうなるかわかりません):「29/06/2012」ではなく「29 juin 」 。

どうすればこれを達成できますか?

編集: Excel で必要な表示形式を調べたところ、「jj mmmm」(C# では「dd mmmm」) です。ただし、セルは値を取得しますが、書式設定を取得しません。コードの一部を次に示します。

                 cell.Value = string.Format("{0:dd/MM/yyyy}", DateTime.Now);
                 cell.NumberFormat = "jj mmmm";

私も試しました:

                 cell.Value = DateTime.Now;
                 cell.NumberFormat = "jj mmmm";

この場合、表示の書式設定は問題ありませんが、セルの値に時間情報が含まれているため、問題があります。

4

4 に答える 4

1

このStackOverflow の質問とそれに対する私の回答を参照してください。Excelシートでセルのカスタム形式を直接設定できるようになります。そこから、さまざまな日付形式の文字列を調査するだけです。

ただし、Excel オートメーションを使用している場合にのみ役立ちます。

それ以外の場合は、DateTime.ToString 出力をフォーマットする方が適切です。繰り返しますが、さまざまな DateStringFormatting オプションを調べると役に立ちます。

最終オプション。自動化を使用せずに、テンプレートを直接変更します。セルに移動し、表示が希望どおりになるまでセル形式を手動で変更します。これにより、実際のデータは変更されず、表示のみが変更されます。

アップデート

対処すべき具体的な問題が 2 つあります。

問題1は、これが日付であることをExcelが認識していることを確認することです。そのためには、日付データ自体が en-US でフォ​​ーマットされていることを確認してください。Microsoft は頭が悪く、国際的な日付形式を認識しないためです。

問題 2 は、セルの表示形式です。月の 3 文字の省略形には、string を使用しますd mmm。完全な月名が必要な場合は、 を使用しますd-mmmm

私はテストしていて、Excel が 29/06/2012 16:54:36 を日付として扱うことを拒否したことを指摘しましたが、問題なく 06/29/2012 16:54:36 を受け入れました。私が言ったように、マイクロソフトは愚かです。

于 2012-06-29T15:23:56.480 に答える
0

DateTime には ToShortDateString というメソッドがあります

于 2012-06-29T14:59:32.563 に答える
0

に変更DateTime.NowするだけDateTime.Dateで、時間がゼロになります

于 2012-06-29T15:51:11.267 に答える
0
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", CultureInfo.CreateSpecificCulture("fr-FR")));

これはあなたにとって良いリソースになるでしょう: msdn custom date and time format strings

于 2012-06-29T15:00:49.863 に答える