Пакетное преобразование файлов Excel в PDF в R - PullRequest
1 голос
/ 15 января 2020

У меня есть папка листов Excel (xlsx), которые я хочу преобразовать в PDF-файлы в R. Я пытался читать рабочие таблицы напрямую в R (используя почти все пакеты), но данные никогда не читаются должным образом. Я имею дело с электронными таблицами Excel от нескольких разных людей, поэтому предположим, что это из-за различий между сохранением файлов со всех компьютеров.

Я полагаю, что преобразование этих файлов в PDF-файлы означало бы, что все они отформатированы одинаково и поэтому с ним будет легче работать.

Можно ли конвертировать файлы из таблиц Excel в PDF-файлы, используя R, не открывая файлы и не читая их в R, так как именно здесь происходят ошибки?

1 Ответ

0 голосов
/ 15 января 2020

Это должно работать с R 3.6.2:

# install RDCOMClient for 3.6.2
url <- "http://www.omegahat.net/R/bin/windows/contrib/3.5.1/RDCOMClient_0.93-0.zip"
install.packages(url, repos=NULL, type="binary")

# install R.utils
install.packages("R.utils")

library(RDCOMClient)
library(R.utils)

# make a list of the folder with your excel files
# replace "Path to your folder" with the path to your folder
list.files("Path to your folder",full.names=TRUE) -> list

# Batch convert (replace "Path to your folder" with the path to your folder)
lapply(list, function(x) {

file <- x                             # path to Excel file
ex <- COMCreate("Excel.Application")  # create COM object
file <- getAbsolutePath(file)         # convert to absolute path
book <- ex$workbooks()$Open(file)     # open Excel file
sheet <- book$Worksheets()$Item(1)    # pointer to first worksheet
sheet$Select()                        # select first worksheet
ex[["ActiveSheet"]]$ExportAsFixedFormat(Type=0,    # export as PDF
                                        Filename=paste0("Path to your folder",gsub(pattern = "\\.xlsx$", "", basename(x)),".pdf"), 
                                        IgnorePrintAreas=FALSE)
ex[["ActiveWorkbook"]]$Save()         # save workbook
ex$Quit()                             # close Excel
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...