xlsread和xlswrite没提供对sheet的操作,从ActiveX来处理
官网地址
Write Data to Excel Spreadsheet Using ActiveX
或者 doc actxserver in matlab
新增sheet
e = actxserver('Excel.Application'); % # open Activex %server
ewb = e.Workbooks.Open(name); % # open file (enter full path!)
ewb.Worksheets.Add([],ewb.Worksheets.Item(ewb.Worksheets.Count));
ewb.Save % # save to the same file
ewb.Close(false)
e.Quit
打开name文件,注意要完整的路径。在原先基础上新增一个sheet,一个新的exl是3个sheet。
对sheet重命名
e = actxserver('Excel.Application'); % # open Activex server
ewb = e.Workbooks.Open(name); % # open file (enter full path!)
ewb.Worksheets.Item(num).Name = mn; % # rename num sheet
ewb.Save % # save to the same file
ewb.Close(false)
e.Quit
对第num个sheet进行重命名
贴一部分代码,实现的是,新建tg为文件名的xls,文件的sheet分别为method。xlswrite 写cell 文件方便。
function Untitled2()
set = {'ECSSD'};
method = {'VA', 'SO'};
methodv = {'MSE', 'PR'};
tg = {'J:\ECSSD.xls','J:\MSRA1000.xls'};
setup(tg{1}, method);setup(tg{2}, method);
end
function str = double2mystr(a)
str = sprintf('%.4f%%',a*100);
end
% 新建一个文件,以method为sheet
function setup(name, method)
% 初始化 name 文件
xlswrite(name, 1);
for i1 = 1 : length(method)
mn = method{i1};
% 使用 ActiveX 来增加sheet
sheetn(name, i1, mn);
end
end
function sheetn(name, num, mn)
e = actxserver('Excel.Application'); % # open Activex server
ewb = e.Workbooks.Open(name); % # open file (enter full path!)
if num > 3
ewb.Worksheets.Add([], ewb.Worksheets.Item(ewb.Worksheets.Count));
end
ewb.Worksheets.Item(num).Name = mn; % # rename 1st sheet
ewb.Save % # save to the same file
ewb.Close(false)
e.Quit
end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
|