2016-12-30 6 views
0

odbcConnectExcel2007の機能を使用してExcelのファイルをRODBCパッケージから読み取ろうとしています。個々のファイルを読んでいる間、それは動作しています。私はforループ機能を使用して実行しようとしていたときにしかし、それは次のようなエラー以下ODBCでファイルをマージする際の接続エラー

3 stop(sQuote(tablename), ": table not found on channel") 
2 odbcTableExists(channel, sqtable) 
1 sqlFetch(conn1, sqlTables(conn1)$TABLE_NAME[1]) 

投げすると、コードである: -

file_list <- list.files("./Raw Data") 
file_list 

for (i in 1:length(file_list)){ 

    conn1 = odbcConnectExcel2007(paste0("./Raw Data/",file_list[i])) # open a connection to the Excel file 
    sqlTables(conn1)$TABLE_NAME 
    data=sqlFetch(conn1, sqlTables(conn1)$TABLE_NAME[1]) 
    close(conn1) 

    data <- data[,c("Branch","Custome","Category","Sub Category","SKU" 
         "Weight","Order Type","Invoice Date")] 


    if(i==1) alldata=data else{ 
    alldata = rbind(alldata,data) 
    } 

} 

は私が助けの任意の種類をいただければ幸いです。 ありがとうございます。

+0

最初のワークシートの名前を教えてください。ループ内に 'file_list [i]'を印刷して、どのブックがエラーを起こしているのかを調べてください。 – Parfait

答えて

0

sqlTables(conn1)$ TABLE_NAMEオブジェクトから返された引用符を持つテーブル名がうんざりしていると思います。引用符を削除してテーブル名を操作してみてください。このような何か:

table <- sqlTables(conn1)$TABLE_NAME 
    table <- noquote(table) 
    table <- gsub("\'", "", table) 

そしてちょうど行います

data=sqlFetch(conn1, table) 
+0

ありがとうございます。それは今働いている。 – honey

関連する問題