new を使用して Javascript で HTML テーブルを Excel に変換しようとしていますActiveXObject("Excel.application")
。基本的に、表のセルをループして、Excel の対応するセルに値を挿入します。
//for each table cell
oSheet.Cells(x,y).value = cell.innerText;
問題は、セルが 'dd-mm-yyyy' (例: 10-09-2008) の日付形式の場合、Excel は 'mm-dd-yyyy' (つまり 2008 年 10 月 9 日) として読み取ることです。私は次のように指定しようとしましたNumberFormat
:
oSheet.Cells(x,y).NumberFormat = 'dd-mm-yyyy';
しかし、それは効果がありません。これは、 parse ではなく、Excel が値を表示する方法にのみ影響するようです。私の唯一の解決策は、次のように日付を交換することです。
var txt = cell.innerText;
if(/^(\d\d)-(\d\d)-\d\d\d\d$/.test(txt)) txt = txt.replace(/^(\d\d)-(\d\d)/,'$2-$1');
しかし、それは一般的ではなく、別のマシン設定ではこれが失敗するのではないかと心配しています。
入力値を解析する方法を特定する方法はありますか?