2

js-xlsxを使用して、以下のような Date 列を含む XLSX ファイルを書き込もうと何度か試みました。毎回、Excel 2010 で XLSX ファイルを開くと、日付が期待どおりにレンダリングされません。特定の起点からの日数としてレンダリングされます。Excel で列をフォーマットせずに、日付を直接レンダリングする方法はありますか?

const XLSX = require("xlsx");

var wb = { 
    Sheets: { 
        Sheet1: { 
            '!ref': 'A1:A2', 
            A1: { t: 'd', v: new Date('13 April 2014 00:00 UTC'), w: '2014-04-13' }, 
            A2: { t: 'd', v: new Date('13 April 2014 00:00 UTC'), w: '2014-04-13' }
        } 
    },
    SheetNames: [ 'Sheet1' ] 
  }

XLSX.writeFile(wb, "wbDate.xlsx", {cellDates: true});

編集:可能な答え

最後に、次のようにいくつかの日付を取得します。

const XLSX = require("xlsx");

var wb = { 
    Sheets: { 
        Sheet1: { 
            '!ref': 'A1:B2', 
            A1: { t: 'd', v: '2016-06-21' }, 
            A2: { t: 'd', v: '2016-11-22' },
            B1: { t: 'n', v: 42542, z: 'm/d/yy' }, 
            B2: { t: 'n', v: 42696, z: 'm/d/yy' }
        } 
    },
    SheetNames: [ 'Sheet1' ] 
  }

XLSX.writeFile(wb, "wbDate.xlsx", {cellDates: false});

これにより、(Windows 7、Excel 2010、ロケール時間 フランス ベルギー):

ここに画像の説明を入力

奇妙なことに、形式は として指定されていますが、出力は(または?)m/d/yyとしてレンダリングされます。私は別のフォーマットを手に入れることができませんでした (しかし、これは私にとっては良いものです)。d/m/yydd/mm/yy

4

1 に答える 1

2

GitHub のこの問題では、日付をフォーマットするさまざまな方法についての長い議論と説明があります。

これは未解決の問題であるため、すべての問題がまだ解決されていない可能性があります。

形式 (エポックからの日数) だけが問題ではないことに注意してください。もう 1 つの問題は、エポックの開始が実際には別のシステムでは別の日からカウントされることであり、これも考慮に入れる必要があります。

于 2016-12-27T10:15:16.200 に答える