我正在尝试(尽我所能)创建一个脚本,该脚本将使用R语言和reporteRs从纯文本文件生成格式化的word文档。
要从一个txt中提取文本我正在使用此帖子Dealing with readLines() function in R上找到的代码:
fileName <- "C:/MyFolder/TEXT_TO_BE_PROCESSED.txt"
con <- file(fileName,open="r")
line <- readLines(con)
close(con)
然后使用以下内容将提取的文本添加到docx:
doc <- docx(template="temp.docx")
接下来,添加标题(txt文件的第一行)
doc <- addParagraph( doc, value = line[1], bookmark = "titre", stylename = "Titre")
然后是txt文件的正文
doc <- addParagraph( doc, value = line[2:length(line)], value = line[2:55], stylename = "Contenu")
最后我创建了docx
writeDoc(doc, file = "output-file.docx")
我希望能够创建一个循环,这样我就可以从多个txt文件生成多个docx。我将非常感谢您的帮助
答案 0 :(得分:0)
您可以使用lapply
myFiles <- c("C:/MyFolder/TEXT_TO_BE_PROCESSED.txt", "C:/MyFolder/TEXT_TO_BE_PROCESSED2.txt") # or use list.files()
lapply(myFiles, function(fileName){
con <- file(fileName,open="r")
line <- readLines(con) # you could just call readLines(fileName)
close(con)
doc <- docx(template="temp.docx")
doc <- addParagraph( doc, value = line[1], bookmark = "titre", stylename = "Titre")
doc <- addParagraph( doc, value = line[2:length(line)], value = line[2:55], stylename = "Contenu")
writeDoc(doc, file = paste0(fileName, "out.docx"))
})
答案 1 :(得分:0)
解决方案:
myFiles <- list.files()
lapply(myFiles, function(fileName){
line <- readLines(fileName)
doc <- docx(template="temp.docx")
doc <- addParagraph( doc, value = line[1], bookmark = "titre",
stylename = "Titre »)
doc <- addParagraph( doc, value = line[2:length(line)], stylename = "Contenu")
writeDoc(doc, file = paste0(fileName, ".docx"))
})
再次感谢Richard