如题。
R处理excel文件,可以用xlsx包,也可以把xlsx批量转化为csv。我发现用vba把xlsx批量转化为csv更快(数据量大时)
1、用xlsx包,这个包需要配置java环境1、 安装最新版本的java。如果你用的R是64位的,请下载64位java。 
下载地址: http://www.java.com/en/download/manual.jsp 
要安装在 C:\Program Files\Java 下面,win8的尤其小心不要安装为C:\Program Files(x86)。可能是R在读取路径时,对x86这样的文件夹不大好识别吧,我第一次装在x86里,读取是失败的。
2、在R中加载环境,即一行代码,路径要依据你的java版本做出更改。 
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_45\\') 
之后再加载rjava包或者xlsx包就成功了。
xlsx包加载成功后,用read.xlsx就可以直接读取xlsx文件,还可以指定读取的行和段,以及第几个表,以及可以保存为xlsx文件,这个包还是很强大的。
但是很遗憾,如果在公司装这个xlsx包的话,可能要找IT帮你装java环境,然后它读大数据速度很慢(不如data.table包里的fread函数)
总之这个适合:小数据、实验式,以及可以自由配置java环境的地方
2、放弃用xlsx包,利用VBA直接把xlsx转化为csv格式。
前情略,具体请参看我原来的随笔。。我改写的VBA代码如下:
代码总是莫名其妙没有……直接插附件吧
Sub getCSV()
'这是网上看到的xlsx批量转化,而改写的一个xlsx批量转化csv格式
'1)批量转化csv参考:http://club.excelhome.net/thread-1036776-2-1.html
'2)创建文件夹参考:http://jingyan.baidu.com/article/f54ae2fcdc79bc1e92b8491f.html
'这里设置屏幕不动,警告忽略
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim data As Workbook
'这里用GetOpenFilename弹出一个多选窗口,选中我们要转化成csv的xlsx文件,
file = Application.GetOpenFilename(MultiSelect:=True)
'用LBound和UBound
For i = LBound(file) To UBound(file)
    Workbooks.Open Filename:=file(i)
    Set data = ActiveWorkbook
    Path = data.Path
    '这里设置要保存在目录下面的csv文件夹里,之后可以自己调
    '参考了里面的第一种方法
    On Error Resume Next
    VBA.MkDir (Path & "\csv")
    With data
        .SaveAs Path & "\csv\" & Replace(data.Name, ".xlsx", ".csv"), xlCSV
        .Close True
      End With
Next i
'弹出对话框表示转化已完成,这时去相应地方的csv里查看即可
MsgBox "已转换了" & (i-1) & "个文档"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
把代码复制进excel的vba编辑器里,然后运行getcsv这个宏,会跳出一个窗口,要求选择你要转化的xlsx文件。(可多选)
选中以后,等一段时间,再回到xlsx文件下,会多一个csv文件夹,里面就是我们要导入R的文本文件了。
这个方法的好处是:
1、操作简单,直接依托于excel的VBA操作,不用配置java环境,之后沟通成本/换电脑成本小 
2、特别适用于有一定数据量,但是数据格式整齐的文件,譬如从某数据端读入的数据。用fread还可以控制读取的行(skip=NNN),代码写入整洁方便。就算有一些异行数据,也可以事先用VBA进行操作,简单方便。
总之我最后是放弃xlsx包,选择用VBA批量转化xlsx文件了。
供大家参考。细节的话请看我原来的博文:http://www.cnblogs.com/weibaar/p/4506144.html