RMarkdown 包 flextable 立即失败 "read_docx only support docx"
RMarkdown package flextable fails immediately with "read_docx only support docx"
我很抱歉提出了一个最低限度的问题......没有太多信息,因为我第一次尝试它就失败了,而且我在 RMarkdown 调试方面还不是很熟练。
我是第一次尝试 flextable(有兴趣在 HTML 和 Word 中控制 table 输出)。
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 有什么限制吗?
或者我们可能会猜测这些限制实际上是针对军官的?
他们能被克服吗?
我不会费心转储 headers 因为你反正没有我的文件。但肯定是最新的 Word 格式,因为我有 Office 365,如果我想的话,几乎无法停止 Windows 更新。
我将尝试自己解压 docx,并检查 docx 的元数据和使用默认值的 Knit 中看到的标准元数据是否有任何差异。
EDIT/UPDATE 2 -- hack 文件失败,并且.....也许无关紧要
所以我确实进行了 zip 转换,使我喜欢的 reference_docx 成为一个文件夹,并将使用“默认”制作的输出 docx 放入一个文件夹中。
我检查了 beyondCompare,也许最大的区别是在我喜欢的尾注中有尾注信息。
我用的是Zotero,所以我实际上是从Word中卸载了Zotero,重新保存,没有任何变化。
我尝试从文档中删除所有尾注并重新保存,但没有任何变化。
我尝试编辑原始文件夹以删除“endnotes.xml”文件,re-zipped它,尝试在 Word 中打开,让它修复,重新保存。 . .没有变化。
我尝试另外删除 top-level xml 中与“尾注”相关的条目,并重新压缩、打开、修复和重新保存......没有变化。
所以我接受了也许我只需要重建我喜欢的参考文档样式,并尝试使用 pandoc“默认”的输出 docx 重新开始。我确实认为首先将它用作 reference_docx 只是为了确保它有效。 . . . . .
它不是 。 :(
- 所以我们可以看到我的盒子上有一些关于 docx 文件的东西
免费table 或官员根本不会接受参考 docx。
我可能不得不和他们一起提出来。
同时,我可以查看是否有用于“默认”的实际 doc 文件,也许那时我仍然可以继续进行。
我是 运行 RStudio 1.3.1073 Windows 10.
我运行的简单代码是:
``` {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 更新
我刚刚试过你的例子并改变了一两件事。我将 post 我的代码放在下面。但是,请注意,您指的包不是 dbplyr
,而是 dplyr
。第一个用于数据库,后者用于提取、转换和加载。这是代码:
library(dplyr)
library(flextable)
library(datasets)
data(iris)
iris[1:10,] %>%
flextable()
使用该代码,它可以在我的机器上完美地编织成单词 (.docx
)。
omg -- 这是因为我的 reference_docx 的文件路径有 spaces(也许还有其他字符)
我还没有检查其他特殊字符,所以可能是其他字符,但肯定 space 足以打破它。
我的原始文件路径是(使用相同长度的字母和数字项进行了部分编辑)
C:\Zzzzz\yyyy\XxxXxxxx\--------1111,1111 aaaaaaa bbbb cccc\ddd e.f. !\_-_ ggggg hhhhh iiii jjjjjjj kkkkk\R source\_outputTemplates\
我试着让它变得很短,也很简单,看看这是否是偶然的问题,因为我还没有尝试过,我一直在想......我们知道这是一个本地问题,所以它一定是什么像这样。
所以我跳到
C:\Zzzzz\yyyy\Qqqqqq\
- 有效!
所以为了调试有问题的字符类型,我制作了一个文件夹来玩,并从 spaces...
开始
C:\Zzzzz\yyyy\Qqqqqq\a folder with spaces\
==> 错误!
更改为相同长度但没有 spaces...
C:\Zzzzz\yyyy\Qqqqqq\aFolderWithNooSpaces\
==> 好的 :) !!!
我可能会检查其他特殊字符,但我认为这已经足够调试了;-)
我相信开发人员可以从这里拿走它。 github 表示他们关注标签。
我很抱歉提出了一个最低限度的问题......没有太多信息,因为我第一次尝试它就失败了,而且我在 RMarkdown 调试方面还不是很熟练。
我是第一次尝试 flextable(有兴趣在 HTML 和 Word 中控制 table 输出)。
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 有什么限制吗?
或者我们可能会猜测这些限制实际上是针对军官的?
他们能被克服吗?
我不会费心转储 headers 因为你反正没有我的文件。但肯定是最新的 Word 格式,因为我有 Office 365,如果我想的话,几乎无法停止 Windows 更新。
我将尝试自己解压 docx,并检查 docx 的元数据和使用默认值的 Knit 中看到的标准元数据是否有任何差异。
EDIT/UPDATE 2 -- hack 文件失败,并且.....也许无关紧要
所以我确实进行了 zip 转换,使我喜欢的 reference_docx 成为一个文件夹,并将使用“默认”制作的输出 docx 放入一个文件夹中。
我检查了 beyondCompare,也许最大的区别是在我喜欢的尾注中有尾注信息。
我用的是Zotero,所以我实际上是从Word中卸载了Zotero,重新保存,没有任何变化。
我尝试从文档中删除所有尾注并重新保存,但没有任何变化。
我尝试编辑原始文件夹以删除“endnotes.xml”文件,re-zipped它,尝试在 Word 中打开,让它修复,重新保存。 . .没有变化。
我尝试另外删除 top-level xml 中与“尾注”相关的条目,并重新压缩、打开、修复和重新保存......没有变化。
所以我接受了也许我只需要重建我喜欢的参考文档样式,并尝试使用 pandoc“默认”的输出 docx 重新开始。我确实认为首先将它用作 reference_docx 只是为了确保它有效。 . . . . .
它不是 。 :(
- 所以我们可以看到我的盒子上有一些关于 docx 文件的东西 免费table 或官员根本不会接受参考 docx。
我可能不得不和他们一起提出来。
同时,我可以查看是否有用于“默认”的实际 doc 文件,也许那时我仍然可以继续进行。
我是 运行 RStudio 1.3.1073 Windows 10.
我运行的简单代码是:
``` {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 更新
我刚刚试过你的例子并改变了一两件事。我将 post 我的代码放在下面。但是,请注意,您指的包不是 dbplyr
,而是 dplyr
。第一个用于数据库,后者用于提取、转换和加载。这是代码:
library(dplyr)
library(flextable)
library(datasets)
data(iris)
iris[1:10,] %>%
flextable()
使用该代码,它可以在我的机器上完美地编织成单词 (.docx
)。
omg -- 这是因为我的 reference_docx 的文件路径有 spaces(也许还有其他字符)
我还没有检查其他特殊字符,所以可能是其他字符,但肯定 space 足以打破它。
我的原始文件路径是(使用相同长度的字母和数字项进行了部分编辑)
C:\Zzzzz\yyyy\XxxXxxxx\--------1111,1111 aaaaaaa bbbb cccc\ddd e.f. !\_-_ ggggg hhhhh iiii jjjjjjj kkkkk\R source\_outputTemplates\
我试着让它变得很短,也很简单,看看这是否是偶然的问题,因为我还没有尝试过,我一直在想......我们知道这是一个本地问题,所以它一定是什么像这样。
所以我跳到
C:\Zzzzz\yyyy\Qqqqqq\
- 有效!
所以为了调试有问题的字符类型,我制作了一个文件夹来玩,并从 spaces...
开始C:\Zzzzz\yyyy\Qqqqqq\a folder with spaces\
==> 错误!
更改为相同长度但没有 spaces...
C:\Zzzzz\yyyy\Qqqqqq\aFolderWithNooSpaces\
==> 好的 :) !!!
我可能会检查其他特殊字符,但我认为这已经足够调试了;-)
我相信开发人员可以从这里拿走它。 github 表示他们关注标签。