楼主: shawnmichaels
1291 2

[R] 用R读取Excel的新方法(转) [推广有奖]

  • 5关注
  • 3粉丝

讲师

91%

还不是VIP/贵宾

-

威望
0
论坛币
21144 个
通用积分
7.5000
学术水平
18 点
热心指数
27 点
信用等级
17 点
经验
45715 点
帖子
718
精华
0
在线时间
297 小时
注册时间
2010-7-2
最后登录
2023-5-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  还在纠结用如何用R读取Excel的同学有福了。昨天逛CRAN的时候发现了一个xlsx包,它给出的介绍是可以读取、写入Excel 2007/2003文件并支持格式的设置。简单地来说,将Excel读取为数据框,以及将数据框写入为Excel文件都不是问题,而更加强大的是它能处理 Excel中的格式,比如合并单元格,设置列的宽度,设置字体和颜色等等。

     如果只需要基本的读取/写入操作,那么其中的read.xlsx()和write.xlsx()应该就能满足大部分的需求了,其用法也很简单,看看帮助文档就了解了。此外,还有两个相应的函数read.xlsx2()和write.xlsx2(),按作者的话说,这两个函数使用了不同的实现方式,效率上会更高一些。

    除了基本的读写操作之外,如之前所说,xlsx包还能进行格式方面的设置。
    下面是一个简单的例子,说明了如何创建工作簿和工作表,如何操作单元格等。感兴趣的朋友不妨运行一下下面的例子,看看最终的效果。

  1. ind = read.table(url("http://yixuan.cos.name/cn/wp-content/uploads/2012/01/ind.txt"),
  2.                  sep = "\t");

  3. library(xlsx);
  4. # Create a new workbook
  5. wb = createWorkbook();
  6. # Create a new sheet with a name
  7. sheet1 = createSheet(wb, "第一页");
  8. # Set the zoom ratio when you open the Excel file
  9. setZoom(sheet1, 50, 100);
  10. # Set the width of columns
  11. setColumnWidth(sheet1, 1:100, 2.8);

  12. # Create rows
  13. rows = createRow(sheet1, 1:40);
  14. # Create cells for each row
  15. cells = createCell(rows, 1:73);
  16. # Merge the first row into one cell
  17. addMergedRegion(sheet1, 1, 1, 1, 73);
  18. # Create the style for title cell
  19. title_cell_style = CellStyle(wb,
  20.     alignment = Alignment(horizontal = "ALIGN_CENTER"),
  21.     font = Font(wb, "blue", 50, isBold = TRUE));
  22. # Create the style for black cells
  23. black_cell_style = CellStyle(wb,
  24.     border = Border(),
  25.     fill = Fill(foregroundColor= "black"));
  26. # Get the first row
  27. first_row = getRows(sheet1, 1);
  28. # Get the title cell from first row
  29. title_cell = getCells(first_row, 1)[[1]];
  30. # Set the value of the title cell
  31. setCellValue(title_cell, "Read/Write Excel!");
  32. # Set the style of the title cell
  33. setCellStyle(title_cell, title_cell_style);
  34. # Set the style of black cells
  35. tmp = mapply(function(x, y) setCellStyle(cells[[x, y]], black_cell_style),
  36.        ind[, 1] 3, ind[, 2] 5);
  37. # Save the workbook into a file
  38. saveWorkbook(wb, "test.xlsx");
复制代码

     总的来说,xlsx包是我目前见过的功能最全的操作Excel的R包,它只依赖于Java环境和rJava、xlsxjars两个包,在多种平台下 都能运行,

      局限是写操作只支持Excel 2007格式(*.xlsx),对于机器上只有MS Office 2003的人来说可能会有些不便。(LibreOffice和OpenOffice.org都可以打开Excel 2007文件)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL xcel exce cel 新方法 Excel Excel转化 R语言

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 100 + 100 + 5 + 5 + 5 精彩帖子
我的素质低 + 20 精彩帖子

总评分: 经验 + 100  论坛币 + 120  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

本帖被以下文库推荐

沙发
accumulation 学生认证  发表于 2015-3-4 12:56:45 来自手机 |只看作者 |坛友微信交流群
shawnmichaels 发表于 2015-3-4 12:48
还在纠结用如何用R读取Excel的同学有福了。昨天逛CRAN的时候发现了一个xlsx包,它给出的介绍是可以 ...
谢谢分享!

使用道具

藤椅
laodong1983 在职认证  发表于 2015-3-4 13:18:12 |只看作者 |坛友微信交流群
很好的材料

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 19:17