热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何将表格添加到我的rmarkdownhtml输出中,该表格将使用格式粘贴到Excel中?

我想在rmarkdown文件中创建按钮(或可选择的表格),允许用户复制表格并将其粘贴到具有一些预定义格式的word或excel中。有没有办法产生:

我想在 rmarkdown 文件中创建按钮(或可选择的表格),允许用户复制表格并将其粘贴到具有一些预定义格式的 word 或 excel 中。

有没有办法产生:


  • 保留表格格式的复制功能,尤其是单元格的边框

  • 捕获整个表的复制功能

使用这个非常简单的数据框:

data<-data.frame(Variable=c('Amount','Age','Happiness','Favorite Color'),
Value=c(15,25,7,'Yellow'))

我希望用户能够单击 html 文件中的按钮,以便当他们粘贴到 excel 或 word 中时,他们会看到:

或者

取决于指定的格式。

就目前而言,我可以制作一个带有单元格边框的表格kable

data%>%
kable("html",align = 'clc')%>%
kable_styling(full_width = F,position="left",bootstrap_optiOns=
c("striped","bordered"))

这个表格,在使用 rmarkdown 生成的 html 文件中,显示单元格边框,并且具有可接受的间距和清晰度(列的宽度足以显示完整的列标题,网格清楚地定义了单元格。

当我突出显示表格并将其粘贴到 Excel 中时,我得到:

一个不满意的结果。

生成一个表DT,我使用:

datatable(data,extensiOns='Buttons',rownames=FALSE,filter=c("top"),optiOns=list(dom='Bfrtip',buttOns=c('csv','copy','excel')))

这将生成一个带有 CSV、复制和 Excel 按钮的表格。

使用复制按钮并粘贴到 Excel 的结果是:

用户有可以粘贴的数据,但没有任何格式(并将文件中的标题放在数据表本身上方两行?)

有没有办法修改DT表格的“复制”按钮的代码以包含一些指定的格式,例如缺少的参数,它提供了将一些格式复制到剪贴板的选项?或者一种生成独立按钮的方法,我可以在后面存储一个 excel 格式的表格,以便用户可以以一种 excel 友好的格式格式复制我的表格?

注意:我不想从 R 写入 excel 文件。 似乎有很多选项可以用于格式化表格和写入 Excelopenxlsx以及这里的解决方案:Write from R into template in excel while reserved formats,但这并没有回答我的问题。

编辑: 似乎可以将格式添加到 Excel 按钮,这里提到:https : //datatables.net/extensions/buttons/examples/html5/excelBorder.html

这给了我希望,也许.attr()格式规范可以以某种方式添加到copy按钮中。

作为尝试测试我是否能让这个中间步骤发挥作用的第一步,我尝试了:

jscode<-"function ( xlsx ){var sheet = xlsx.xl.worksheets['sheet1.xml']; $('row c[r*=10]', sheet).attr( 's', '25' ); }"
datatable(data1,class='cell-border',extensiOns='Buttons',rownames=FALSE,filter=c("top"),optiOns=list(dom='Blfrtip',buttOns=list(list(extend='excel',customize=jscode))))

结果是一个无所事事的旋转按钮。

当我尝试:

library(jsonlite)
datatable(data1,class='cell-border',extensiOns='Buttons',rownames=FALSE,filter=c("top"),optiOns=list(dom='Blfrtip',buttOns=list(list(extend='excel',customize=fromJSON(jscode)))))

我收到一个错误:

由于这个问题的解决方案似乎依赖于一些 Javascript(至少如果答案将基于datatable,我已经添加了 Javascript 标签。


推荐阅读
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 本文旨在探讨如何利用决策树算法实现对男女性别的分类。通过引入信息熵和信息增益的概念,结合具体的数据集,详细介绍了决策树的构建过程,并展示了其在实际应用中的效果。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 深入理解 JMeter 定时器
    本文详细介绍了JMeter中定时器的功能和使用方法,探讨了其在性能测试中的重要性,并结合实际案例解释了如何合理配置定时器以模拟真实的用户行为。文章还涵盖了定时器的执行顺序及其与其他元件的相互作用。 ... [详细]
  • python时间序列之ADF检验(1)
    读取数据,pd.read_csv默认生成DataFrame对象,需将其转换成Series对象DataFrame和Series是pandas中最常见的2 ... [详细]
author-avatar
小破皮2011_292
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有