Here is what it take to write out two sheets with XLConnect

# function to write out a sheet to an EXCEL file that I use
f.writeXLSheet <-
function (data, sheet, fileToWrite, rownames = NULL)
{
    require(XLConnect)
    writeWorksheetToFile(fileToWrite, data = data, sheet = sheet,
        rownames = rownames, styleAction = XLC$STYLE_ACTION.NONE)
}

df1 <- data.frame(c1=1:2, c2=3:4, c3=5:6)
df2 <- data.frame(c21=c(10.10101010101,20, 3), c22=c(50E50,60, 3) )
outFile <- 'df12.xls'

unlink(outFile)  # make sure there is no file to start with
f.writeXLSheet(df1, 'df1', outFile)
f.writeXLSheet(df2, 'df2', outFile)

I have attached the resulting Excel file (see how far it makes it).

On Sun, May 20, 2012 at 7:15 PM, Spencer Graves
<spencer.gra...@structuremonitoring.com> wrote:
> On 5/20/2012 5:52 AM, Gabor Grothendieck wrote:
>>
>> On Sun, May 20, 2012 at 8:30 AM, Gabor Grothendieck
>> <ggrothendi...@gmail.com>  wrote:
>>>
>>> On Sat, May 19, 2012 at 9:32 PM, Spencer Graves
>>> <spencer.gra...@structuremonitoring.com>  wrote:
>>>>
>>>> Hello, All:
>>>>
>>>>
>>>>      The "writeFindFn2xls" function in the "sos" package tries to write
>>>> an
>>>> Excel file with 3 sheets ('PackageSum2', 'findFn', 'call').
>>>> Unfortunately,
>>>> it is often unable to do this because of configuration problems that are
>>>> not
>>>> easy to fix.  I've found 3 contributed packages that provide facilities
>>>> to
>>>> write Excel files with multiple sheets. Unfortunately, I can't get any
>>>> of
>>>> them to work consistently for me. Below please find test cases that
>>>> illustrate the problems.  Any suggestions for how to solve this problem
>>>> will
>>>> be appreciated.
>>>>
>>>>
>>>>      Thanks,
>>>>      Spencer
>>>>
>>>>
>>>> library(dataframes2xls)
>>>>
>>>> df1<- data.frame(c1=1:2, c2=3:4, c3=5:6)
>>>> df2<- data.frame(c21=c(10.10101010101,20, 3), c22=c(50E50,60, 3) )
>>>> outFile<- 'df12.xls'
>>>>
>>>> write.xls(c(df1,df2), outFile)
>>>> # works
>>>>
>>>> do.call(write.xls, list(c(df1, df2), outFile))
>>>> # Error in get(s[i]) : object 'structure(list(c1=1:2' not found
>>>>
>>> Try this:
>>>
>>> dd<- list(df1 = df1, df2 = df2)
>>> do.call("WriteXLS", list("dd", outFile))
>>>
>>> or this:
>>>
>>> do.call("WriteXLS", list(c("df1", "df2"), outFile)
>>>
>> That was for WriteXLS.  For dataframes2xls try this:
>>
>> do.call("write.xls", list(quote(c(df1, df2)), outFile))
>
>
> Hi, Gabor:  Thanks.  I think we're gaining on it, but I'm still not quite
> there.  Consider the following extension of my previous toy example:
>
> library(dataframes2xls)
>
> df1 <- data.frame(c1=1:2, c2=3:4, c3=5:6)
> df2 <- data.frame(c21=c(10.10101010101,20, 3), c22=c(50E50,60, 3) )
> outFile <- 'df12.xls'
>
> write.xls(c(df1,df2), outFile)
> # works
>
> do.call(write.xls, list(quote(c(df1, df2)), outFile))
> # works
>
> df2x <- function(x, file)
>    do.call(write.xls, list(x, file))
> df2x(quote(c(df1, df2)), outFile)
> # works
>
> df2 <- function(x1, x2, file){
>    x23 <- quote(c(x1, x2))
>    do.call(write.xls, list(x23, file))
> }
> df2(df1, df2, outFile)
> # Error in get(s[i]) : object 'x1' not found
>
>
>      This is closer to what I need.  The answer may lie in getting the right
> "envir" argument for "do.call".  However, I haven't yet found something that
> works there.
>
>
>      Thanks,
>      Spencer
>>
>>
>> and also check out this page:
>>
>> http://rwiki.sciviews.org/doku.php?id=tips:data-io:ms_windows
>>
>>
>
>
> --
> Spencer Graves, PE, PhD
> President and Chief Technology Officer
> Structure Inspection and Monitoring, Inc.
> 751 Emerson Ct.
> San José, CA 95126
> ph:  408-655-4567
> web:  www.structuremonitoring.com
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to