0
我試圖把一個Word文檔的數據不在表中,並將其製作成表格。有數百個相同的單詞文檔,我想編寫一個腳本,可以將這些數據存入表格。1列包含標題和數據,如何使它成爲多個
我的第一個想法是將它全部轉換成一列,然後我可以以某種方式拉出列標題並組織它下面的數據。
的Word文件:https://github.com/cstaulbee/Operation-WordDoc/blob/master/Sanitized_sampe.docx
library(docxtractr)
filenames <- list.files(".", pattern="*.docx", full.names=TRUE)
docx.files <- lapply(filenames, function(file) read_docx(file))
idx <- 1
docx.tables <- lapply(docx.files, function(file) {
ifelse(dir.exists("Contents"), {
unlink("Contents", recursive=T, force=T)
dir.create("Contents")
}, {
dir.create("Contents")
})
filename <- filenames[idx]
idx <- idx + 1
tbl <- docx_extract_tbl(file, 1)
file.copy(filename, "Contents\\word.zip", overwrite=T)
unzip("Contents\\word.zip", exdir='Contents')
x <- xml2::read_xml("Contents\\word\\document.xml")
nodes <- xml2::xml_find_all(x, "w:body/w:p/w:r/w:t")
data.date <- paste(xml2::xml_text(nodes, trim=T), collapse="::")
word_df <- strsplit(gsub("[:]{1,}", ":", txt), ":")
return(
list(
date=data.date
)
)
})
word_df <- strsplit(gsub("[:]{1,}", ":", docx.tables), ":")
此轉換的Word文檔到一個壓縮文件,然後把它讀成一個XML。它提取不在表格中的信息,然後將其全部放入可以被操縱的列表中。
我想知道是否有人知道採取這一列的方法,並根據數據將其製作成幾列。例如,Date,Time in,Pilot和Assistants將在列中出現3次或幾次,但我希望每個列都是自己的列,它們之間的數據和下一個列標題是數據上行。
所以基本上它看起來像這樣:
df_col
Date
2/
2/16
Pilot
John, Mark
Assistants
Alfred, James
但我希望它看起來像這樣
Date_col Pilot_col Assistants_col
2/22/16 John, Mark Alfred, James
除非有人有這樣做的更好的辦法的想法。