I am trying to use RODBC to write to an Excel2007 file and I keep getting errors. I brought the problem to this most basic case: a 1-line data.frame with character, numeric, dates and logical data types:
toWrite = data.frame( Name = "joe" , Date = as.Date("2011-01-01"), Value = 2 , Paid = FALSE ) xlFile = odbcConnectExcel2007( "REPLACE_WITH_XLSB_FILE_PATH" , readOnly = FALSE ) sqlSave( xlFile , toWrite , tablename = "worksheet1" , rownames = FALSE )
Error:
Error in sqlSave(xlFile, toWrite, tablename = "worksheet1", rownames = FALSE) : [RODBC] Failed exec in Update 22018 39 [Microsoft][ODBC Excel Driver]Invalid character value for cast specification In addition: Warning message: In odbcUpdate(channel, query, mydata, coldata[m, ], test = test, : character data 'FALSE' truncated to 1 bytes in column 'Paid'
If I convert both the date and the logical columns to a character, everything works fine. The problem is that they are now characters in Excel and cannot be used as intended data types without conversion. I dig into sqlSave code and it seems to be doing the right thing. Has anyone else encountered this problem?
source share