Я пытаюсь использовать RODBC для записи в файл Excel2007 и сохраняю получение ошибок. Я свел проблему к этому очень простому случаю, data.frame с одной строкой с символьными, числовыми, датами и логическими типами данных:
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 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'
Если я конвертирую столбцы Date и logic в символьные тогда все работает нормально. Проблема в том, что теперь это символы в Excel, и их нельзя использовать в качестве предполагаемых типов данных без преобразования. Я покопался в коде sqlSave, и, похоже, он делает правильные вещи. Кто-нибудь еще сталкивался с этой проблемой?