【问题标题】:formatting gene names as text in xlsx r package将基因名称格式化为 xlsx r 包中的文本
【发布时间】:2018-01-29 16:29:43
【问题描述】:

我正在尝试以正确的方式格式化 Excel 文件中的列。首先,恐怕Excel会将一些奇怪的基因名称描绘为日期,这在科学中经常发生。因此,通常,当从 txt 文件将数据导入 excel 时,我选择基因名称列并将单元类型从 general 更改为 text 以保存。 当我现在使用xlsx 创建我的 excel 表时,恐怕这会发生。 目前,我尝试重现此行为,但所有列的格式都设置为 general,但我希望将特定列强制为文本。

这有可能吗?

df <- data.frame(a=c(1,2),
                 b=c('SEPT2', 'MARCH1'),
                 c=c('1,2', '1,4'),
                 d=c('1.2', '1.4'),
                 e=c('2-SEP', '1-MARCH'),
                 f=c('APR-1', 'DEC-1'))
wb <- xlsx::createWorkbook()
sheet1 <- xlsx::createSheet(wb, sheetName='test')
xlsx::addDataFrame(df, sheet1, 
                   col.names=TRUE, row.names=FALSE)
xlsx::saveWorkbook(wb, 'test.xlsx')

我希望将 b、e 和 f 列格式化为文本。

编辑

由于我在评论中询问,如何找到更多格式值,例如科学记数法,我找到了here

text_format = CellStyle(wb, dataFormat=DataFormat("@"))
scientific_format <- CellStyle(wb, dataFormat=DataFormat('0.00E+00'))

【问题讨论】:

标签: r xlsx r-xlsx


【解决方案1】:

您只需要创建格式规范并将其添加到 addDataFrame 并使用 colStyle 参数。

wb <- xlsx::createWorkbook()
sheet1 <- xlsx::createSheet(wb, sheetName='test')

## Create the format specification
TextFormat = CellStyle(wb, dataFormat=DataFormat("@"))
FormatList = list('2'=TextFormat, '5'=TextFormat,'6' = TextFormat)

xlsx::addDataFrame(df, sheet1, col.names=TRUE, colStyle=FormatList, 
    row.names=FALSE)
xlsx::saveWorkbook(wb, 'test.xlsx')

注意:“@”是文本格式的代码。

【讨论】:

  • 谢谢,这就像一个魅力!是否有任何来源可以查找此代码?我很想用科学数字等标记一些列......但我只是找不到这些代码的好来源......
  • 刚刚找到科学记数法并将其添加到我的问题中。如果有关于如何获取格式样式的来源,我仍然感兴趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多