Мне нужно (не вручную) загрузить этот файл и преобразовать содержимое в data.frame, было бы полезно игнорировать несколько строк. Я ищу специально для решения в R или Python.XLS to CSV или R data.frame
Сам файл может быть взят из:
http://horizons.prod.transmissionmedia.ca/GetDailyFundSummaryExcel.aspx?lang=en
Вот что я сделал до сих пор:
- Я попытался XLConnect (
Error: IllegalArgumentException (Java): Your InputStream was neither an OLE2 stream, nor an OOXML stream
) - Я ve попытался RODBC (
Error in odbcConnectExcel("xl.file") : odbcConnectExcel is only usable with 32-bit Windows
) - Я пробовал xlrd в Python (
XLRDError: Unsupported format or corrupt file
) - Я попытался GData (
Error in xls2sep(xls, sheet, verbose = verbose, ..., method = method, : Intermediate file '...' missing!
)
Если открыть файл в блокноте, это файл XML, и при открытии в Excel, вы получите предупреждающее сообщение «Формат и расширение не совпадают ».
Идеи, которые я могу исследовать сами, также полезны, если у вас нет ответа, прокомментируйте.
Моя попытка до сих пор с XML/регулярное выражение:
library(XML)
library(stringr)
download.file("http://horizons.prod.transmissionmedia.ca/GetDailyFundSummaryExcel.aspx?lang=en", destfile = "horizons.xls")
doc <- readLines(con = "horizons.xls")
doc <- str_extract(doc,"<Table[^>]*>(.*?)</Table>")
doc <- xmlParse(doc)
listing <- xpathApply(doc, "//Row", xmlToDataFrame)
listing <- listing[4:length(listing)]
listing <- do.call(rbind,lapply(listing, t))[,6:16]
listing[,3:11] <- gsub("[^-.0-9]", "", listing[,3:11])
listing <- as.data.frame(listing, row.names = NULL,stringsAsFactors = FALSE,)
listing$V1 <- str_replace_all(listing$V1, "[^a-zA-Z0-9]", " ")
listing[5:11] <- lapply(listing[5:11],as.numeric)
names(listing) <- c(
"Product Name",
"Ticker",
"Class",
"Price",
"Price % Change",
"Volume",
"NAV/unit",
"NAV % Change",
"% Prem/Disc",
"Outst. Shares"
)
Ьгу read.xls http://www.r-bloggers.com/read-excel- files-from-r/ – Sathish
Во-первых: Не загружайте файл в Internet Explorer как * в некоторых версиях «он меняет расширение файла с .xls на .xml без необходимости. –
Во-вторых: Вы считали, что вы сами разбираете XML? –