how to Save Data in Excel Sheet ?
31 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Adnan Ali
le 14 Août 2014
Réponse apportée : Ashraf Rayed
le 12 Mai 2020
I want to save my data in form of table in Excel Sheet. it should look like the Picture given below. Every time when I will execute my file classData.m , A row will be added below. like i want to add next row as
"Ahmad 21 44 3.53 "
Thanks in Advance
0 commentaires
Réponse acceptée
Amir
le 14 Août 2014
Please try this code:
clc
clear
% Your Inputs
NewName = {'Adnan'};
NewValues = [24,18, 3.55];
% Check if you have created an Excel file previously or not
checkforfile=exist(strcat(pwd,'\','ExcelFile.xls'),'file');
if checkforfile==0; % if not create new one
header = {'name', 'Age' 'Rollnum' , 'GPA'};
xlswrite('ExcelFile',header,'Sheetname','A1');
N=0;
else % if yes, count the number of previous inputs
N=size(xlsread('ExcelFile','Sheetname'),1);
end
% add the new values (your input) to the end of Excel file
AA=strcat('A',num2str(N+2));
BB=strcat('B',num2str(N+2));
xlswrite('ExcelFile',NewName,'Sheetname',AA);
xlswrite('ExcelFile',NewValues,'Sheetname',BB);
6 commentaires
Image Analyst
le 17 Oct 2014
You attached my demo so I'm not really sure whose code you used. If you have to append many lines of data then I can guarantee you 100% that you'd be faster using my ActiveX code than repeatedly calling xlsread and xlswrite for each line you want to append. If you want to append 500 lines of data, then with Amir's code you'll be launching Excel 1000 times, and shutting down Excel 1000 times, versus launching 1 times and shutting down 1 time, so my code would be 1000 times faster. It would actually be faster even if you only appended 2 lines of data.
Plus de réponses (3)
Image Analyst
le 14 Août 2014
Modifié(e) : Image Analyst
le 14 Août 2014
Just call xlswrite() with the new row of data. You need to keep track of what row to stuff your data into. For example, maybe in your main calling routine, you have a loop where you call classData with your data. Somehow you get new data with each iteration, then:
newData = "Ahmad 21 44 3.53 " % Whatever this happens to be this time...
rowToWrite = 5; % or whatever.
cellReference = sprintf('A%d', rowToWrite);
classData(newData, cellReference);
rowToWrite = rowToWrite + 1;
4 commentaires
Michal Gajewski
le 15 Jan 2016
There is also another easier way (Only with one function 'length'): Let's say that you have your headers and 3 lines of data (like in your example).
You have to read your file:
YourXlsxFile=xlsread(xlsxfilename);
find first empty row:
RowEmptyNumber=length(YourXlsxFile(:,1))+1; - in this case this is last element+1;
and just save data in new empty row:
A = {Ahmad, 21, 44, 3.53};
sheet = 1;
xlRange=strcat('A',num2str(RowEmptyNumber)); % this function is for create cell 'A4' as starting point in your case.
xlswrite(xlsxfilename,A,sheet,xlRange); % save data to new row
I hope this is useful solution.
0 commentaires
Ashraf Rayed
le 12 Mai 2020
Sir i have question here. I have to detect the area of leaves in some page and i want save those data of area in excel sheet. Means when i check one picture it is saved, then after that when i will check another pic it will not replace the data rather than it will also be saved with the previous one in rcolumn wise in a excel sheet. can you please give me some type of that code?
0 commentaires
Voir également
Catégories
En savoir plus sur Spreadsheets dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!