基本上我试图通过unlisting和paste-ing一个列表来派生SELECT语句的WHERE部分,其中列表名称代表数据库TABLE列和相应的列表值等于WHERE子句的参数.这是一个简化的例子......
lst <- list(DATE=as.Date('2015-10-25'), NUM="0001", PROD="SOMETHING")
lst
$DATE
[1] "2015-10-25"
$NUM
[1] "0001"
$PROD
[1] "SOMETHING"
Run Code Online (Sandbox Code Playgroud)
理想情况下,这将被转换为(从第二行开始的有趣位WHERE):
"SELECT SOME_COLUMNS WHERE
DATE = '", lst$DATE, "' AND
NUM = '", lst$NUM, "' AND
PROD = '" lst$PROD ,"'")
Run Code Online (Sandbox Code Playgroud)
我很确定有人知道一些奇特的组合apply(),
paste(..,collapse ="' AND ")和/或substitute()那可以以优雅的形式实现,但我被卡住了.
我最近尝试了该函数的各种格式化参数
setDataFormatForType(wb, type=XLC$DATA_TYPE.DATETIME, format="d/m/yy")
Run Code Online (Sandbox Code Playgroud)
例如,格式=“d/m/yy”,如上所示,还有许多其他格式。
接下来是
setStyleAction(wb, XLC$"STYLE_ACTION.DATA_FORMAT_ONLY")
Run Code Online (Sandbox Code Playgroud)
然后我编写一个工作表并保存工作簿。任何形式的格式调整似乎都不起作用。一旦我弄乱了 setDataFormatForType 命令中的任何格式,结果就是数字时间值显示在 Excel 工作簿的日期列中,我稍后保存为 2013 年 11 月 6 日 = 41584。如果我不干扰任何数据格式,然后标准(POSIX)格式都会被保存,但是当您在生成的 Excel 中查看它时,它分配了一些自定义“XLConnect 格式”,因此它显示“错误”:-( - 这意味着美国表示法(后面跟着前导月份)按天)但我想要的是欧洲语(先行日期,后跟月份)。
如果有人有在 XLConnect 中设置这些数据格式(尤其是“日期”)的经验,那么分享一些想法或智慧将受到高度赞赏。
谢谢,沃尔特