R中flextable导出至Word报错及临时文件存工作目录问题咨询
问题原因及解决方案
报错1:Error: directory of \Users\XXX\Desktop\example_2.docx does not exist 解决
- 首先是路径格式错误:Windows系统下R的路径有两种合法写法,要么用正斜杠
/,要么用双反斜杠\\,你写的路径开头只有一个反斜杠属于无效格式,R无法识别路径。 - 其次是目录校验问题:
save_as_docx不会自动创建不存在的上级目录,你需要先确认保存路径对应的文件夹真实存在,如果用户名对应的Desktop文件夹路径有误,就会触发不存在报错。
你可以先运行代码打印当前用户名确认路径正确性:
# 查看当前Windows用户名,核对Desktop路径 Sys.getenv("USERNAME") # 正确的路径写法示例,把XXX替换为上面打印的用户名 save_as_docx(`Table 1` = ft1, path = "C:/Users/XXX/Desktop/example_2.docx", pr_section = sect_properties)
如果想要直接保存到当前R工作目录,不需要写全路径,直接写文件名即可:
# 直接保存到当前getwd()返回的工作目录下 save_as_docx(`Table 1` = ft1, path = "example_2.docx", pr_section = sect_properties)
临时文件导出到本地的实现
你之前用print(tf, target = "c:/Users/Hendrik/Desktop/")报错是因为target参数需要指定完整的文件名,而不是仅指定文件夹路径,正确写法如下:
# 方法1:直接用file.copy复制临时文件到目标路径,兼容性更强 file.copy(from = tf, to = "C:/Users/Hendrik/Desktop/flextable_output.docx", overwrite = TRUE) # 方法2:print函数指定完整文件名 print(tf, target = "C:/Users/Hendrik/Desktop/flextable_output.docx")
如果不想手动写路径,也可以通过交互选择保存位置,避免路径写错:
save_as_docx(`Table 1` = ft1, path = choose.files(default = "example.docx", caption = "选择保存位置"), pr_section = sect_properties)
内容的提问来源于stack exchange,提问作者gideon1321
相关产品推荐
相关产品推荐

