如何在R中使用下拉表单读取Word docx

vshtjzan  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(191)

我的初始文件是创建为一个宏启用的文档,带有下拉列表来填充一些问题。我试图在将其保存为docx文件后,使用readtexttextreadrqdapTools包将其读入R。所有这些包都可以读取它。然而,问题是只有手动输入的答案出现在R输出中,即“FORMTEXT”,而那些用下拉列表填写为“FORMDROPDOWN”的则不会出现。例如,我手动输入姓氏,并选择性别=男性,这是输出

Family Name:  FORMTEXT Larry
Sex:  FORMDROPDOWN

是否有其他软件包可以读取手动输入和下拉列表?

xxhby3vn

xxhby3vn1#

我已经能够添加一个新的DropDown项,并且我已经能够使用以下代码提取DropDown项的值。

library(RDCOMClient)

wordApp <- COMCreate("Word.Application")
wordApp[["Visible"]] <- TRUE
wordApp[["DisplayAlerts"]] <- FALSE
path_To_Word_File <- "D:\\empty_Word_File.docx"
doc <- wordApp[["Documents"]]$Open(normalizePath(path_To_Word_File), ConfirmConversions = FALSE)

##########################
#### Add a form field ####
##########################
doc_Selection <- wordApp$Selection()
doc$FormFields()$Add(Range = doc_Selection$Range(), Type = 83) # see https://learn.microsoft.com/en-us/office/vba/api/word.wdfieldtype
doc$FormFields(1)$Select()
obj_Form_Fields_One <- doc_Selection$FormFields(1)$DropDown()$ListEntries()

obj_Form_Fields_One$Add("Blue")
obj_Form_Fields_One$Add("Red")
obj_Form_Fields_One$Add("Black")

#############################################
#### Extract the value of the form field ####
#############################################
doc$FormFields(1)$Result()
[1] "Blue"

相关问题