MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Changing excel table with Wolfram Mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121623] Re: Changing excel table with Wolfram Mathematica
  • From: "Hans Michel" <hmichel at cox.net>
  • Date: Thu, 22 Sep 2011 07:27:44 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201109191106.HAA19601@smc.vnet.net> <j59p4t$rn$1@smc.vnet.net> <201109210934.FAA13192@smc.vnet.net>

Alexey:

The poster did not have any constraint in his question that related to
performance. 

I could have posted something like this
In[3]:= lexx = {{1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 2, 2}, {1, 1, 2, 2}}

Out[3]= {{1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 2, 2}, {1, 1, 2, 2}}

In[4]:= lexx // TableView

WRI still undocumented feature
(http://forums.wolfram.com/mathgroup/archive/2009/Oct/msg00186.html)

Looks like Excel cells but not much is publically known as to what WRI
intent is on this view. On can interactively edit cells.

But this is not what the poster asked. 

As to your question. I would not know which JDBC connection from Mathematica
to Excel vs JDBC connection from Mathematica to HSQL is faster or more
memory efficient.

If I had to hazard a guess, I would say a SQL compliant database with good
indexing capability running in-memory should in principle out perform a
somewhat proprietary file based structure that has to be deflated upon
opening and using non-standard SQL-like language for ODBC communications.

I was merely trying to point the poster towards a solution path.

Hans 
PS
Nice post on SO. Have you tried your solution using ToSymbolicXML and
FromSymbolicXML to take advantage of WRI internal representations.

-----Original Message-----
From: Alexey Popkov [mailto:lehin.p at gmail.com] 
Sent: Wednesday, September 21, 2011 4:35 AM
To: mathgroup at smc.vnet.net
Subject: [mg121623] Re: Changing excel table with Wolfram Mathematica

Hans,

Very interesting, thank you for pointing this out! But what is about
performance? Is working with Excel file is approximately as fast and
memory efficient as working with Mathematica's built-in SQL database?

Alexey

P.S. It is quite simple to work with Mathematica's built-in SQL
database by using a set of simple supporting functions presented here
("SQL Approach" section):
http://stackoverflow.com/questions/5287817/the-best-way-to-construct-a-funct
ion-with-memory/5291299#5291299

On 20 Sep, 14:15, "Hans Michel" <hmic... at cox.net> wrote:
> Every once in a while someone asked this question.
>
> No is the answer to your constrained question:  using Mathematica Built-In
> functions to update just a few Excel worksheet cells in an Excel workbook
> without overwriting the file on using Export.
>
> Without your constraints you can Import the entire worksheet, make changes
> to the values you need, Export the entire worksheet out. OR
>
> You can use DatabaseLink. Treat Excel file as a database. You would use a
> JDBC (ODBC) connection to the Excel worksheet. Then using Excel's SQL-like
> language you can Update the required cells.
>
> It is very hard to provide details of using DatabaseLink in this way,
> because depending on platform and user's skill set and level of experience
> using ODBC it is a painful process to explain and work through.
>
> But this is where I would point you towards to start:
>
> http://reference.wolfram.com/mathematica/DatabaseLink/tutorial/Databa...
> ctions.html#27756
>
> In "Setting Up the Connection" section the image of the ODBC Datasource
> Administrator (depending on your system)
>
> "Excel Files" is a choice. So one can connect to an Excel file.
>
> If the poster pursues the DatabaseLink route, I would advise the poster to
> first make a successful ODBC connection to an Excel file and do an update
of
> a cell and close the connection. Do this if time permits using external
> tools Java program. When you get familiar with the concept and its use I
> would say then you are ready to use DatabaseLink. Otherwise there will be
a
> barrage of questions stemming from rookie mistakes such as ("Now I can't
> open my Excel file?" Did you close the connection.)
> ("It is not working?" Do you have the correct ODBC-JDBC Driver for the
> application your are connecting.)
>
> If you understand what I am pointing towards then go ahead and jump right
> into DatabaseLink.
>
> Hans
>
>
>
>
>
>
>
> -----Original Message-----
> From: Kuba [mailto:drazen.kubato... at zg.htnet.hr]
> Sent: Monday, September 19, 2011 6:06 AM
> Subject: Changing excel table with Wolfram Mathematica
>
>     I would like to change some cells in Excel table with Mathematica. I
> know that can be done with "Mathematica link for Excel", but is any way
how
> can I change this with Mathematica built-in functions? For example:
>
>     Table from A1 to D4
>
> 1 1 1 1
> 1 1 1 1
> 1 1 2 2
> 1 1 2 2
>
> I wont change cells from C3 to D4, to set new value. For example 2 becomes
> 3.
> It is important that all other cells stay untouched.
> Thank you very much.






  • Prev by Date: Re: Compilation: Avoiding inlining
  • Next by Date: HCL color space implementation for Mathematica
  • Previous by thread: Re: Changing excel table with Wolfram Mathematica
  • Next by thread: Re: Changing excel table with Wolfram Mathematica