]> git.donarmstrong.com Git - r/common_r_code.git/blob - array_to_excel.R
add array to excel
[r/common_r_code.git] / array_to_excel.R
1 ### this requires txt2xls, which you can find here:
2 ### http://git.donarmstrong.com/bin.git/b/txt2xls
3
4 mkdtemp <- function() {
5     max.tries <- 100
6     while (max.tries > 0) {
7         tmpnam <- tempfile("dir")
8         if (dir.create(tmpnam)) {
9             return(tmpnam)
10         }
11         max.tries <-  max.tries - 1
12     }
13     return(NA)
14 }
15
16 array_to_excel <- function(data,workbook) {
17     if (is.data.frame(data) || is.data.frame(data)) {
18         temp <- data
19         data <- list()
20         data[[workbook]] <-
21             temp
22     }
23     temp.dir <- mkdtemp()
24     worksheets <- NULL
25     for (worksheet in names(data)) {
26         write.table(data[[file]],
27                     file=file.path(temp.dir,worksheet))
28         worksheets <- c(worksheets,
29                         file.path(temp.dir,worksheet))
30     }
31     system("txt2xls","--output",workbook,worksheets)
32     unlink(worksheets)
33     unlink(temp.dir)
34     return(workbook)
35 }