RMarkdown软件包flextable立即失败,显示“ read_docx仅支持docx”

问题描述

对于一个最低限度的问题,我感到抱歉……没有太多信息,因为它是我第一次尝试使用它时就失败了,而且我对RMarkdown调试还不是很熟练。

我第一次尝试使用flextable(对控制HTML和Word中的表输出感兴趣)。

已安装Flextable并为HTML运行,但完全停止了对Word的任何渲染。当我尝试编织到Word之前,在我完全没有一个新的Word文件之前,它在RMarkdown面板中因错误而停止,为:


Line [first line of R-chunk]: Error: read_docx only support docx files Execution halted  

有人以前看过并解决过这个问题吗? There is just one SO question potentially related to this here,但尚未找到答案:(


编辑-我发现了一些东西,但这仍然是一个问题:-p
我想到的另一件事是“自定义” ...我已经有了自己的reference_docx。
当我拿走它以便使用默认的Word模板时...它将运行!!
但是我绝对想要我的风格! flextable不是我唯一可以使用的东西:-D。
有人知道flextable的reference_docx有什么限制吗?
还是我们可能会认为这些限制实际上是针对军官的?
他们可以克服吗?

我不会麻烦转储标题,因为您仍然没有我的文件。但是可以肯定的是,这是Word的最新格式,因为我拥有Office 365,并且如果愿意的话也几乎无法停止Windows Updates。
我将尝试自己打开docx的包装,并检查docx和标准docx的元数据之间是否存在差异,如使用默认值的Knit所示。

编辑/更新2-无法破解文件,并且.....也许没关系 因此,我确实进行了zip转换,将首选的reference_docx设置为文件夹,并将使用“ default”创建的输出docx设置为文件夹。 我检查了beyondCompare,也许最大的不同是我喜欢的尾注中有信息。
我使用的是Zotero,因此实际上是从Word卸载了Zotero,重新保存了,没有任何变化。
我尝试从文档中删除所有尾注并重新保存,没有任何变化。
我尝试编辑原始文件夹以删除“ endnotes.xml”文件,将其重新压缩,然后尝试在Word中打开,然后进行修复,重新保存。 。 。没有变化。
我尝试另外在与“尾注”相关的顶级xml中删除一个条目,并且也重新压缩,打开,修复和重新保存.....没有变化。

因此,我接受了也许我只需要重建首选的参考文档样式,并尝试使用pandoc“默认”中的输出docx重新开始。我确实认为首先要使用它作为reference_docx,以确保其有效。 。 。 。 。 。
它不是 。 :(

  • 所以我们可以看到我的盒子上有一些关于docx文件的内容, 免费表或官员根本不接受参考文档。

我可能不得不和他们一起提高。
同时,我可以查看是否存在用于“默认”的实际doc文件,也许我仍然可以继续进行。


我正在Windows 10上运行RStudio 1.3.1073。
我正在运行的简单代码是:

``` {r}

library(dplyr)
library(flextable)

myDF = mtcars 


myDF[1:10,] %>%
      flextable()


```

运行sessionInfo()会产生:

R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] rstudioapi_0.11  knitr_1.29       magrittr_1.5     tidyselect_1.1.0 munsell_0.5.0    colorspace_1.4-1 R6_2.4.1         rlang_0.4.7     
 [9] dplyr_1.0.2      tools_4.0.2      grid_4.0.2       gtable_0.3.0     xfun_0.16        tinytex_0.25     htmltools_0.5.0  ellipsis_0.3.1  
[17] yaml_2.2.1       digest_0.6.25    tibble_3.0.3     lifecycle_0.2.0  crayon_1.3.4     purrr_0.3.4      ggplot2_3.3.2    vctrs_0.3.2     
[25] glue_1.4.1       evaluate_0.14    rmarkdown_2.3    compiler_4.0.2   pillar_1.4.6     generics_0.0.2   scales_1.1.1     pkgconfig_2.0.3 
> 

只是要确认 ~~~只是要清楚我已经将其隔离到使用flextable()或潜在的magrittr,但这似乎关系不大-这很好:

``` {r }


library(dplyr)
library(flextable)


myDF = datasets::mtcars 


myDF[1:10,] 
  # %>%
  #     flextable()


```  

我已经使用RMarkdown了两周,并且以前已经生成了docx。
如果不使用flextable,我仍然可以生成docx,包括最小的数据转储,只需选择上述10行而不使用flextable。
当我合并flextable时,我们遇到了一个奇怪的问题。

并且只是要额外,更清晰,取出magrittr我仍然会得到相同的行为... HTML可以,Word出现如下错误:

``` {r }


library(dplyr)
library(flextable)


myDF = datasets::mtcars 


flextable(myDF[1:10,])


  # %>%
  #     flextable()


```

要回答另一个问题,
是的,我已经尝试过更新所有软件包并检查RStudio更新

解决方法

omg-这是因为我reference_docx的文件路径中有空格(也许还有其他字符)

我还没有检查其他特殊字符,所以可能不是其他字符,但是可以肯定的是空格足以打破它。

我的原始文件路径是(部分删除了相同长度的字母和数字项)

C:\Zzzzz\yyyy\XxxXxxxx\--------1111,1111 aaaaaaa bbbb cccc\ddd e.f. !\_-_ ggggg hhhhh iiii jjjjjjj kkkkk\R source\_outputTemplates\  

我试着把它写得很短,也很简单,看看这是否是偶然的问题,因为我还没有尝试过,我一直在想...我们知道这是一个本地问题,所以一定是这样的

所以我跳到了

C:\Zzzzz\yyyy\Qqqqqq\  
  • 并且有效!

因此,要调试有问题的字符类型,我制作了一个可播放的文件夹,并以空格开头...

C:\Zzzzz\yyyy\Qqqqqq\a folder with spaces\  

==>错误!

正在更改为相同长度,但没有空格...

C:\Zzzzz\yyyy\Qqqqqq\aFolderWithNooSpaces\  

==>好的:) !!!

我可能会检查其他特殊字符,但是我认为这已经足够了;-)
我相信开发人员可以从这里拿走它。 github说他们跟随标签。

,

我只是尝试了您的示例,并更改了一两件事。我将在下面发布我的代码。但是,请注意,您所指的软件包不是dbplyr,而是dplyr。第一个用于数据库,第二个用于提取,转换和加载。这是代码:

library(dplyr)
library(flextable)
library(datasets)

data(iris)

iris[1:10,] %>%
      flextable()

使用该代码,它可以完美地编织到我机器上的单词(.docx)上。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...