ExcelでDateTime
を表す最良の方法は何ですか? Syncfusions Essential XlsIO を使用して、Excelドキュメントに値を出力します。しかし、列にDateTime
を表示する方法がわかりません。自分でExcelで直接実行する場合も同様です。不可能ですか?別の日付と時刻の列を使用する必要がありますか? Excelがそれを修正する巧妙なものを持っている場合を除いて、ソートブレークなどの原因になることを本当に望んでいません...
Excelの日時の基になるデータ型は、1日の長さが1で1900年1月1日00:00が1である64ビット浮動小数点数です。したがって、2009年6月11日17:30は約39975.72917です。
セルにこのような数値が含まれている場合は、セルに日時形式を適用するだけで、日時に変換できます。
したがって、上記の式を使用して日時を数値に変換できる場合は、それらを関連するセルに出力し、セル形式を適切な日時形式に設定します。 yyyy-mm-dd hh:mm:ssの場合、必要なものを実現できるはずです。
また、 Stefan de Bruijn は、1900がle年であると誤って想定しているというExcelのバグがあることを指摘しているので、計算を行う際にそれを考慮する必要があります( Wikipedia )。
私のように、フォーマットダイアログで日付または時刻の下に日付時刻が見つからない場合、「カスタム」でそれを見つけることができるはずです。
「カスタム」から「dd/mm/yyyy hh:mm」を選択しましたが、結果に満足しています。
次のことができます。
=Datevalue(text)+timevalue(text)
。
さまざまなタイプの日付形式に移動して、以下を選択します。
dd-mm-yyyy mm:ss am/pm
。
Excelの一部のバージョンには、標準の選択リストで使用できる日時形式がありませんが、yyyy-mm-dd hh:mm:ssなどのカスタム形式文字列を次のように入力するだけです。
これは私のExcel 2010で動作します
Excelは、日付と時刻が、ブックのDate1904設定に依存する浮動小数点数に加えて、「mm/dd/yyyy」または「hh:mm:ss」または「mm/dd」などの数値形式として格納されることを想定しています。/yyyy hh:mm:ss "を使用して、ユーザーに数値が日付/時刻として表示されるようにします。
SpreadsheetGear for .NET を使用すると、これを行うことができます。worksheet.Cells ["A1"]。Value = DateTime.Now;
これは、DateTimeを、Excelが日付/時刻に使用する基本型であるdoubleに変換し、値に応じてデフォルトの日付および/または時刻の数値形式でセルをフォーマットします。
SpreadsheetGearには、.NET DateTimeオブジェクトからExcelが使用できるdoubleに変換するIWorkbook.DateTimeToNumber(DateTime)およびNumberToDateTime(double)メソッドもあります。
XlsIOに似たようなものがあると思います。
免責事項:私はSpreadsheetGear LLCを所有しています
これらのオプションのいずれかを使用して、XlsIOのセルに日時値を設定できます。
sheet.Range["A1"].Value2 = DateTime.Now;
sheet.Range["A1"].NumberFormat = "dd/mm/yyyy";
sheet.Range["A2"].DateTime = DateTime.Now;
sheet.Range["A2"].NumberFormat = "[$-409]d-mmm-yy;@";
より多くの情報を見つけることができます こちら 。
Excelでは、DateTimeと同様の方法で日付型を表示できます。影響を受けるセルを右クリックし、セルのフォーマットを選択してから、カテゴリの下で日付を選択し、タイプの下でタイプを選択します次のようになります。
3/14/01 1:30 PM
それはあなたが要求したことをするはずです。この形式でいくつかのサンプルデータの並べ替えをテストしましたが、うまくいくようです。
dd-mm-yyyy hh:mm:ss.000並べ替え可能な汎用の日付/時刻パターン