【问题标题】:Importing excel xlsx data using XLconnect and readWorksheet causes incorrect format使用 XLconnect 和 readWorksheet 导入 excel xlsx 数据导致格式不正确
【发布时间】:2017-07-04 14:21:38
【问题描述】:

我有一个扩展名为 xlsx 的 Excel 文件,其中 Sheet1 和 Sheet 包含以下内容:18:20、10:10(A 列,第 1:2 行)。当我尝试将它们导入 R 时,我没有得到预期的结果。

library(XLConnect)

setwd("...")
my_book <- loadWorkbook("test.xlsx")

xlsx_import <- lapply(getSheets(my_book), readWorksheet, object = my_book) 
xlsx_import


# Returns some kind of date format

xlsx_import <- lapply(getSheets(my_book), readWorksheet, object = my_book, colTypes = "character")
xlsx_import


# Same as above

是否有可能在 R 中以某种方式解决这个问题?因为我有很多床单要检查。

【问题讨论】:

  • 我猜问题是 Excel 认为这些单元格是时间,所以它会以日期/时间格式导出它们。如果它们作为日期保存在 Excel 中,那么您最好的选择可能是将它们导入到 R 中,然后尝试提取数据,而不是通过 readWorksheet 选项进行。
  • 导入数据后,尝试类似df$problem.column &lt;- format(df$problem.column, format = "%H:%M")
  • 没用...

标签: r excel xlsx xlconnect


【解决方案1】:
Try This.

wb=loadWorkbook("Test.xlsx", create = TRUE)

setStyleAction(wb, XLC$"STYLE_ACTION.DATATYPE")
cs = createCellStyle(wb, name = "myDateStyle")
setDataFormat(cs, format = "dd-mm-yyyy")
setCellStyleForType(wb, style = cs, type = XLC$"DATA_TYPE.DATETIME")



s<-readWorksheet(wb,sheet = "Sheet1")

***Operations which you wanna do***

writeWorksheet(wb, wq, sheet = "Sheet1")
setForceFormulaRecalculation(wb,"*",TRUE)
saveWorkbook(wb)

【讨论】:

  • 有关此代码的一些附加信息可能会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2017-10-01
  • 1970-01-01
  • 2020-02-18
  • 1970-01-01
  • 2016-04-23
相关资源
最近更新 更多