1

私は最近、関数であらゆる種類のフォーマット引数を試しました

setDataFormatForType(wb, type=XLC$DATA_TYPE.DATETIME, format="d/m/yy")

たとえば、上に示した format="d/m/yy" など、他にも多数あります。

これに続いて、

setStyleAction(wb, XLC$"STYLE_ACTION.DATA_FORMAT_ONLY")

次に、ワークシートを作成してワークブックを保存します。形式の微調整は機能していないようです。setDataFormatForType コマンドで任意の形式をいじるとすぐに、後で保存する Excel ワークブックの日付列に時刻の数値が表示されます。つまり、2013 年 11 月 6 日 = 41584 です。すべての DataFormats 次に標準 (POSIX) 形式が保存されますが、結果の Excel でそれを見ると、カスタムの「XLConnect 形式」が割り当てられているため、「間違って」表示されます :-( - これはアメリカの表記法を意味します (先頭の月が続く日ごと)しかし、私が欲しいのはヨーロッパ人です(最初の日の後に月が続きます)。

XLConnect でこれらの DataFormats (特に「日付」) を設定した経験がある場合は、考えや知恵を共有していただければ幸いです。

ありがとう、ウォルター

4

2 に答える 2

4

https://github.com/miraisolutions/xlconnectXLC$"STYLE_ACTION.DATATYPE"の github から入手できる XLConnect バージョンには、新しいスタイル アクションがあります。「datatype」スタイル アクションを使用して、 を使用して設定できる特定のセル スタイルを使用して、特定のタイプのセルをスタイルできます。次の例を参照してください。setCellStyleForType

必要 (XLConnect)
wb = loadWorkbook("test.xlsx", create = TRUE)
setStyleAction(wb, XLC$"STYLE_ACTION.DATATYPE")
cs = createCellStyle(wb, name = "mystyle")
setDataFormat(cs, format = "d/m/yy")
setCellStyleForType(wb、スタイル = cs、タイプ = XLC$"DATA_TYPE.DATETIME")
data = data.frame(A = 1:10, B = Sys.time() + 1:10)
createSheet(wb, "データ")
writeWorksheet(wb、データ = データ、シート = "データ")
saveWorkbook(wb)
于 2013-11-13T22:00:11.043 に答える
2

「Dates」という名前のリージョンが必要です。そのような領域を含む template2.xslx ファイルのコピーを保存しました。私のために働いた唯一の考えは、関数でそれを書き出すことでしたformat.Date:

Dates=seq(from=as.Date("2001-01-01"), to=as.Date("2013-01-01"), by=365)
file.copy(system.file("demoFiles/template2.xlsx", 
                      package = "XLConnect"),
          "dataformat.xlsx", overwrite = TRUE)
wb <- loadWorkbook("dataformat.xlsx")
setDataFormatForType(wb, type = XLC$"DATA_TYPE.DATETIME", 
                     format = "dd/mm/yyyy")
setStyleAction(wb, XLC$"STYLE_ACTION.DATA_FORMAT_ONLY")
createName(wb, name = "Dates", formula = "mtcars!$A$1")
writeNamedRegion(wb, format(Dates, "%d.%m.%Y"), name = "Dates")
saveWorkbook(wb)
于 2013-11-08T22:12:48.717 に答える