web-dev-qa-db-ja.com

ExcelでCSVに保存すると地域の日付形式が失われる

.csvに変換する必要がある.xlsがあります

ファイルにはいくつかの日付列が含まれています。日付の形式は "* 14/03/2001"です。これは、Excelによると、日付はOSに指定された地域の日付と時刻の設定に対応することを意味します。

あなたが見るExcelで開く:

20/01/2013
01/05/2013

名前を付けて保存... CSV

メモ帳で開く:

01/20/2013
05/01/2013

日付の形式を "14/03/2001"(*なし)に設定することで一時的に修正しましたが、CSVに保存すると、 "d/mm/yyyy h:mm"など、*のない他のカスタム形式でも破損します。

11
upshake

これを念頭に置いて http://xkcd.com/1179/

最後に、すべてのCSVファイルでYYYYMMDDという形式を使用することにしました。これは、Excelでは日付に変換されませんが、すべてのアプリケーションで正しく読み取ることができます。

9
upshake

この手順に従って、Excelから.csvに目的の日付形式を保存できます。うまくいけば、Excelの達人がさらに改良して、ステップ数を減らすことができます。

  1. 新しい列DATE_TMPを作成し、それを= TEXT(oldcolumn、 "date-format-arg")式に等しく設定します。

たとえば、例で日付が列Aにあった場合、この新しい列の行1の値は次のようになります。

= TEXT(A1、 "dd/mm/yyyy")

  1. 既存の日付列の横に空白の列DATE_NEWを挿入します。

  2. 「値として貼り付け」オプションを使用して、DATE_TMPの内容をDATE_NEWに貼り付けます。

  3. DATE_TMPと既存の日付列を削除し、DATE_NEWの名前を古い日付列に変更します。

  4. Csvとして保存します。

8
deadcode

カレンダー設定で、コンピュータの日付と時刻の設定を「短い日付」形式に変更します。これにより、すべてのyyyy-mm-ddまたは表示したい形式が変更されます。お使いのコンピュータに保存されたファイルでも同じように見えることを覚えておいてください。

少なくともそれは機能します。

5
LaRae

1.エクスポートよりも多くの作業を行う必要があります。2.ファイルを開きます。

Excel CSVドキュメントがOSと解釈される地域の設定について話しているとき、それはExcelがファイル( "特別な" csv形式のファイル)を開いたときにそれを行うことを意味すると思います。この記事を参照してください "Excelのフォーマットと機能は他のファイル形式に転送されません"

また、Excelは実際には数値を格納し、表示専用の日付文字列に変換しています。 CSVにエクスポートするときに、別の日付文字列に変換しています。その日付文字列をデフォルト以外にする場合は、エクスポートを実行する前に、Excelセルを文字列に変換する必要があります。

または、日付をExcelが保存している数値に変換することもできます。これはタイムコードであるため、適切にインポートした場合、実際にはOSおよび地域の設定に従います。ただし、メモ帳には10桁の数字しか表示されません。

4
Seth Battin

事前に選択された日付形式ではなく、カスタム形式を使用する場合、CSVへのエクスポートでは選択された形式が維持されます。それ以外の場合は、デフォルトでUS形式に戻ります

2
baldy

日付の前にアポストロフィを配置すると、正しい形式でエクスポートされます。自分で見つけたばかりで、このスレッドが答えを探しているのがわかりました。

1
Joe

日付範囲を「一般」形式に変更してワークブックを1回保存し、日付形式に戻します(例:numberformat = "d/m/yyyy")ブックを保存して閉じる前。 savechangesパラメータはtrueです。

0
Sam

私がこれに使用したほどスケーラブルではない修正は、データをプレーンテキストエディターにコピーし、セルをテキストに変換してから、データをスプレッドシートにコピーすることです。

0
aydow