【问题标题】:Modify a word document using R使用 R 修改 word 文档
【发布时间】:2021-08-17 16:06:49
【问题描述】:

link 解释了如何使用基于ReporteRs 包的R 代码在Word 文档中添加简单或自定义表格。

我的任务完全不同。我已经有一个word文件:file。我想为每个表添加一个新行(即红色、黄色、蓝色、黑色数据集)。第一列应该是今天的日期(我猜是Sys.Date()),其他单元格可以是随机的(在这个级别上它们并不重要)。

【问题讨论】:

    标签: r ms-word


    【解决方案1】:

    首先,“ReporteRs 已被重写。新包是officer。[...] 可以使用包mschart 生成本机Microsoft 图表。请使用officer 而不是ReporteRs”(D. Gohel ReporteRs)。

    我从不需要在 word 文件中编辑表格,但是使用 officer,您应该读取数据 → 将表格导入为数据框并用 R 语言进行一些修改 → 导出一个新的 .docx 以满足您的需要(使用旧段落和您刚刚计算的“新”表)。

    或者,也可以在 .docx 文件中编辑表格,这些表格是某种“段落”的字样:有必要使用一些指针或正则表达式来指示哪些表格被编辑(例如,package vignette , SO question & answer here)。

    祝你好运

    【讨论】:

      【解决方案2】:

      这是一个使用 R 包 RDCOMClient 的解决方案:

      library(DescTools)
      library(RDCOMClient)
      
      report <- GetNewWrd(template = normalizePath("C:\\...\\file.docx"))
      report[["Visible"]] <- TRUE
      
      nb_Tables <- report[["ActiveDocument"]]$Tables()$Count()
      
      for(l in 1 : nb_Tables)
      {
        obj_Table <- report[["ActiveDocument"]]$Tables(l)
        nb_Row <- obj_Table$Rows()$Count()
        nb_Col <- obj_Table$Columns()$Count()
        obj_Table$Rows()$Add()
      
        for(j in 1 : nb_Col)
        {
          obj_Table$Cell(nb_Row + 1, j)$Range()$InsertAfter(paste0("l : ", l, " and j : ", j))
        }
      }
      
      report[["ActiveDocument"]]$SaveAs("C:\\...\\modified_file.docx")
      
      

      【讨论】:

        猜你喜欢
        • 2013-04-21
        • 2023-04-09
        • 2017-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多