How to paste nicely into Excel from MATLAB variable editor?

조회 수: 171 (최근 30일)
Julian
Julian 2015년 2월 25일
댓글: Will Reeves 2023년 9월 27일
One can readily paste data from Excel into a MATLAB cell array in the variable editor using Paste Excel Data (Ctrl-Shift-V), but how exactly does one reverse this operation?
I find cells that contain [] become strings in Excel, where I expect blank cells, and strings get unwanted quotes at the start and end.
The net result of this is if you copy and paste some cells in Excel comprising some text, some numeric and some blanks into a MATLAB cell array - it looks fine in MATLAB - but when you copy back to Excel you don't have what you started out with.
Easy copy / paste between Excel and MATLAB should be a breeze in 2015, shouldn't it? What am I doing wrong? Perhaps there is or needs to be a "Copy Excel Data" function to match "Paste Excel Data" (although it is nicer to just use standard Ctrl+C, Ctrl+V)?
Thanks for reading this.

채택된 답변

Julian
Julian 2015년 3월 9일
It is not directly possible. From Mathworks:
I understand that you would like to paste cells with strings from the MATLAB Variables editor to Microsoft Excel, but noted some inconsistencies to-from copy/paste operations. Specifically, you found that copying from MATLAB to Excel in this way introduces single quotation marks and empty square brackets depending on whether or not the cell element has a string or is an empty matrix.
Unfortunately, while the MATLAB Variables editor has a context menu item to paste values from Excel, I do not think there is an immediate option in Microsoft Excel to paste from MATLAB. I tried using Excel's Text Import Wizard to perform this paste operation into Excel, but unfortunately none of the options I explored worked.
That said, I can think of two possible workarounds to working between MATLAB and Excel without the use of "xlsread/xlswrite" or "readtable/writetable": 1. Copy the cell array from the MATLAB Variables editor, and then paste to Excel as you have done before. Then, from Excel, press Ctrl+F to Find/Replace all single quotes and square brackets [] with empty strings. 2. Consider using MathWork's Spreadsheet Link EX to use MATLAB from Microsoft Excel. The following link provides a high-level overview of Spreadsheet Link EX and its available features: http://www.mathworks.com/products/excellink/
  댓글 수: 1
Will Reeves
Will Reeves 2023년 9월 27일
Please can there be a checkbox in the viewer to enable the hiding of speach marks? it would be really helpful. Or perhaps a "copy as" similar to the "paste excel data" (which initself feels like a bit of a hack?)

댓글을 달려면 로그인하십시오.

추가 답변 (9개)

P D McClanahan
P D McClanahan 2017년 11월 16일
One easy workaround is to: 1) Paste into Google sheets, which seems to work fine 2) Then copy from Google sheets into Excel

Lex
Lex 2021년 5월 8일
This answer is very late given when the question was asked, but I found success just directly copy and pasting (Ctrl+C and Ctrl+V) , then going to "Data" and selecting "Text to Columns" and then following the instructions.
You would have to play with it to figure out what works for you, but there are instructions online how to use "Text to Columns."

Jg
Jg 2016년 1월 21일
Julian,
I'm no Matlab guru so I like simple solutions like you're looking for.
I've had luck with Ctrl+C to copy from the variable editor, then paste into Microsoft Word. Then copy and paste from word to Excel.
May work for you too.
  댓글 수: 2
Julian
Julian 2016년 1월 21일
Thanks for the tip Jg.
Sadly it didn't work just now in my current (outdated) environment, but I shall try again later today when I have an up-to-date version of everything (Windows, Excel & MATLAB!)
Jakob Nadj
Jakob Nadj 2019년 5월 2일
Thanks Jg!!!!

댓글을 달려면 로그인하십시오.


Zhe
Zhe 2017년 7월 5일
Copy and paste to Google Sheets then to Excel

Daniel
Daniel 2015년 2월 25일
I don't know much about converting back Excel, but you might want to look into xlswrite. That command may do the trick for you.
  댓글 수: 2
Julian
Julian 2015년 2월 25일
Thanks for answering, Daniel, but not what I was looking for. I know about xlswrite, but that is a programmatic solution and (I think) doesn't work for spread-sheets already open in Excel. I just want to know how to Ctrl+C Ctrl+V into an open Excel, which should be very simple surely?
Will Reeves
Will Reeves 2023년 9월 27일
clearly not... And still an issue in 2023

댓글을 달려면 로그인하십시오.


Sascha Schlechtweg
Sascha Schlechtweg 2017년 5월 15일
Using Ctrl+C and Ctrl + V in OpenOffice worked perfectly fine for me. Maybe it helps.
Best regards

Julian
Julian 2017년 5월 15일
Thanks for your point. I don't have OpenOffice but I confirm that behaviour I first complained about still applies in MATLAB R2017a.

Joel Bay
Joel Bay 2020년 3월 4일
None of these other methods seem to work anymore, but what you can do is:
writetable(cell2table(myCellArray));
And then you'll have a nicely copy and pasteable table in your work directory.
  댓글 수: 1
Julian
Julian 2020년 3월 4일
Thanks for your comment!
Yes, I certainly use writetable and readtable - but that solution is not copy & paste and creates intermediary files....

댓글을 달려면 로그인하십시오.


Rafid Bendimerad
Rafid Bendimerad 2020년 3월 31일
편집: Rafid Bendimerad 2020년 3월 31일
Here are the steps:
1- Copy your array from Matlab.
2- Paste your array in Excel.
3- Select your array in Excel.
4- type: Ctrl + F (Press the button Ctrl and the button F simultaneously).
5- A window will appear (Find - Replace). Choose Replace.
6- Then,
Find what: .
Replace with: ,
(Look to the picture below)
It's Done.
Basically, we just replace the period (.) by a coma (,). And this is bacause Matlab uses "periods" while Excel uses "comas". For example: Matlab writes: 5.5 while Excel writes 5,5.
Got it ?
Good Luck.
  댓글 수: 1
Steven Lord
Steven Lord 2020년 3월 31일
Different countries use different decimal separators. I know Microsoft Excel has an option to specify the decimal and thousands separators. MATLAB has a preference to control what is used when exporting data via the clipboard.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by