1

Excelの特定のセルにこの形式YYYY-MM-DD hh:mm:ssで日付値を割り当てようとしています.TCLを使用してExcelを開いて値を解析し、最後に値をExcelのセルにプッシュし、最後にCSV形式で保存し、

たとえば、2012-09-10 00:00:00 を Excel の特定のセルに割り当てようとすると、Excel がそれを 9/10/2012 0:00 に変換することがわかります。TCL から Excel の自動書式設定オプションをオフにする方法はありますか?

これは私のサンプルコードです:

proc get_date  { }  {
    set date "2012-09-10 00:00:00" 
    return $date
}

set application [::tcom::ref createobject "Excel.Application"]
set workbooks [$application Workbooks]
$application DisplayAlerts False
set workbook [$workbooks Open "c:\\test\\dir\\filename.csv"]                
set worksheets [$workbook Worksheets]
set worksheet [$worksheets Item [expr 1]]
set cells_worksheet1 [$worksheet Cells] 
$cells_worksheet1 Item 5 B [get_date]

$workbook Save
$application Quit
4

4 に答える 4

0

すでに説明したように、CSV はフォーマットを一切サポートしていません。これはプレーン テキスト形式です。これは、日付/時刻値のシート セルに設定した書式に関係なく、Excel がこのシートを CSV ファイルに保存すると、CSV ファイルに保存する方法がないため、書式が失われることを意味します。

つまり、CSV を使用してデータを保存するのをやめ、ネイティブ形式 (XLS[X]) を使用するか、CSV で処理できないものを処理しようとするのをやめます。

于 2012-09-13T09:37:52.890 に答える
0

日付以外の文字列の先頭にアポストロフィ (') を追加するだけで、形式をバイパスできました。

于 2012-09-12T21:46:07.070 に答える
0

これを行う方法はないと思います。同様の議論を次に示します。

単一引用符による方法は、 importではなくexportでのみ機能します。Excel 2010 を使用していますが、keep-first-8-rows-blank メソッドも機能しませんでした。

于 2012-09-12T19:22:42.647 に答える
0

NumberFormatとして扱いたいセルの範囲のプロパティを設定する必要がありTextます(デフォルトの代わりに、General物事を推測して変更します):

set cell [$cells_worksheet Item 5 B]
$cell NumberFormat "Text"
$cell Text [get_date]
于 2012-09-12T19:23:10.967 に答える