Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I wanted to ask how can I view an Excel file from a Mathematica notebook and modify it.

I have seen a similar question, Open Excel file with Mathematica, but the answer involves .NET. Is there any other way to open an Excel file and modify it?

share|improve this question
    
You could Import[] a spreadsheet, but I don't believe there's a native way to have a spreadsheet interface within Mathematica... –  J. M. Jul 5 '12 at 7:00
    
@J.M. well there is TableView ... –  Mr.Wizard Jul 5 '12 at 7:04
    
@J.M.: I dont want to import the values because I want that end user can open the Excel file and change its values if needed and then use it in application. –  Jennifer Jul 5 '12 at 7:06
    
@Mr.Wiz, undocumented, I see... :) –  J. M. Jul 5 '12 at 7:06
1  
Then I don't quite understand why you want to use Mathematica to open Excel files... something about "use the proper tool for the job"? –  J. M. Jul 5 '12 at 7:07
show 5 more comments

2 Answers

Amending the file directly would indeed require something like .Net. If you were willing to consider an import-export roundtrip but with a spreadsheet like interface in Mathematica, then something like this might work:

rawdata = (Import["myspreadsheet.xlsx"][[2]]);
 (* where 2 is the number of the worksheet you want to use *)
newdata = TableView[rawdata]

Now, change the data cells you want to change and then type Shift-Enter when the cursor is in that TableView.

Then in another cell, evaluate:

newnewdata = %[[1]]

This will give you an expression with the list of changed data, stripped of the enclosing TableView Head.

You can then Export that changed expression back to Excel if that is what you wish.

share|improve this answer
    
TableView has some useful column sorting capabilities. –  Mike Honeychurch Jul 5 '12 at 9:34
    
@Verbeia: Thanks...but I have tried it in another way. I have posted my answer. –  Jennifer Jul 6 '12 at 7:07
add comment
Row[{
 Button["Browse", (g = SystemDialogInput["FileOpen"]; SystemOpen[g]), Method -> "Queued"],    
 Button["Import", y = Import[g, "Data"]]}]

I have made two Buttons, one for browsing theExcel file and other imports it.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.