matlab生成excel文档源码

1. 创建一个本地的Excel服务端,其实就是打开Excel

try
    Excel = actxGetRunningServer('Excel.Application');
catch
    Excel = actxserver('Excel.Application');
end

表达意思如下

try

        如果Excel 服务器已经打开,返回其句柄

catch

        如果Excel服务器没有打开,则创建一个Excel服务器,并返回句柄

end

2. 让打开的Excel可见

默认情况下启动服务器是不可见的,Excel.Visible1时可见,为0时候不可见。

Excel.Visible = 1;%设置为看见或者set(Excel, 'Visible', 1); 
Excel.Visible = 0;%设置为看不见或者set(Excel, 'Visible', 0); 

经过1-2两步后效果如下图1

                                                                                                  图1

3. 创建一个工作簿

也就是创建一个空白的Excel文件效果如下图2

WorkBook = Excel.Workbooks.Add;% 创建一个工作簿

                                                                                                                   图2

4. 创建一个表单

WorkBook = Excel.Workbooks.Add;% 添加一个工作簿
Sheet1 = WorkBook.Sheets.Item(1);%表单句柄

表单创建好后需要激活,还需要给表单起个名

Sheet1.Activate;%激活
Sheet1.Name = '我是第一个表单';%起名字

 效果图如下图3

                                                                                                                图3

5.页面设置

Sheet1.PageSetup.TopMargin = 60;       % 上边距40磅
Sheet1.PageSetup.BottomMargin = 45;    % 下边距40磅
Sheet1.PageSetup.LeftMargin = 45;      % 左边距40磅
Sheet1.PageSetup.RightMargin = 45;     % 右边距40磅

   PageSetup属性:

  1. TopMargin        上边距
  2. BottomMargin   下边距
  3. LeftMargin         左边距
  4. RightMargin      右边距

PageSetup属性设置参考https://docs.microsoft.com/zh-cn/office/vba/api/excel.pagesetup

 6. 设置行高列宽

RowHeight = [25,25,25,25]';
Sheet1.Range('A1:A4').RowHeight = RowHeight;
Sheet1.Range('A1:H1').ColumnWidth = [10,8,8,8,8,8,8,8,20];

   

        属性设置

  1. RowHeight属性表示:行高
  2. ColumnWidth属性表示:列宽
  3. Range:设置表格范围。详解如下

                                                                     Range('A1:A16')表示:

                                                                              Range('A1:B6')表示:

7.单元格子合并 

                                             MergeCells属性表示:合并单元格

Sheet1.Range('A1:H1').MergeCells = 1;
Sheet1.Range('A2:H2').MergeCells = 1;
Sheet1.Range('A8:A9').MergeCells = 1;
Sheet1.Range('B8:D8').MergeCells = 1;
Sheet1.Range('E8:H8').MergeCells = 1;
Sheet1.Range('B9:D9').MergeCells = 1;
Sheet1.Range('E9:H9').MergeCells = 1;
Sheet1.Range('A10:H10').MergeCells = 1;
Sheet1.Range('A11:H11').MergeCells = 1;
Sheet1.Range('A12:H12').MergeCells = 1;
Sheet1.Range('A13:H13').MergeCells = 1;
Sheet1.Range('A14:H14').MergeCells = 1;
Sheet1.Range('D16:H16').MergeCells = 1;

MergeCells详解见https://docs.microsoft.com/zh-cn/office/vba/api/excel.range.mergecells

8.设置单元格的边框

Sheet1.Range('A4:H14').Borders.Weight = 3;
Sheet1.Range('A10:H12').Borders.Item(3).Linestyle = 0;
Sheet1.Range('A10:H12').Borders.Item(4).Linestyle = 0;
Sheet1.Range('A13:H13').Borders.Item(4).Linestyle = 0;
Sheet1.Range('A14:H14').Borders.Item(3).Linestyle = 0;

    Borders边框属性:

  1. Weight:宽度
  2. Linestyle:添加双边框

Borders属性详解见:https://docs.microsoft.com/zh-CN/office/vba/api/excel.borders

 9.设置单元格对齐方式

Sheet.Range('A1:C3').HorizontalAlignment = -4108;   % 水平居中
Sheet.Range('A1:C3').VerticalAlignment = -4160;     % 顶部对齐
  1. HorizontalAlignment属性表示:水平居中
  2. VerticalAlignment属性表示:顶部对齐

这两个对齐方式等于的那个值是枚举值,具体可以参考微软官网

https://docs.microsoft.com/zh-cn/office/vba/api/overview/excel/enumerations-graph-visual-basic-reference

10. 写入单元格内容(Value

Sheet1.Range(范围).Value = '插入的信息';

11.设置字号样式

Sheet1.Range('A4:H12').Font.size = 10.5;    % 设置单元格A4至H12的字号为10.5
Sheet1.Range('A1').Font.size = 16;          % 设置单元格A1的字号为16
Sheet1.Range('A1').Font.bold = 2;           % 单元格A1的字体加粗
Sheet.Range('A1:C3').Font.Name = '华文行楷'

Font属性详细见:https://docs.microsoft.com/zh-CN/office/vba/api/excel.font(object)

 

12. 保存WorkBook和退出Excel服务端

WorkBook.SaveAs([pwd, '\我的第一个excel']);%pwd表示路径,保存“我的第一个excel”
Excel.Quit%退出
clear 
clc

file_path=[pwd,'\test.xlsx']%设置当前路径
try
    Excel=actxGetRunningServer('Excel.Application')%如果Excel 服务器已经打开,返回其句柄
catch
    Excel=actxserver('Excel.Application')%如果Excel服务器没有打开,则创建一个Excel服务器,并返回句柄
end
Excel.Visible = 1; ;%设置Excel服务器为可见状态

%如果存在test.xlsx文件,则打开文件,若不存在则创建一个,然后保存
if exist(file_path,'file')
    Workbook=Excel.Workbooks.Open(file_path)%打开
else
    Workbook=Excel.Workbooks.Add%创建
    Workbook.SaveAs(file_path)%保存   
end

% 返回当前工作表句柄
Sheets = Excel.ActiveWorkbook.Sheets;    
Sheet1 = Sheets.Item(1);    % 返回第1个表格句柄
Sheet1.Activate;    % 激活第1个表格

% 页面设置
Sheet1.PageSetup.TopMargin = 60;       % 上边距40磅
Sheet1.PageSetup.BottomMargin = 45;    % 下边距40磅
Sheet1.PageSetup.LeftMargin = 45;      % 左边距40磅
Sheet1.PageSetup.RightMargin = 45;     % 右边距40磅


% 设置行高和列宽
% 定义行高向量RowHeight
RowHeight = [25,25,25,25]';
% 设置Range对象(从A1到A16)的行高
Sheet1.Range('A1:A4').RowHeight = RowHeight;
% 设置Range对象(从A1到H1)的列宽
Sheet1.Range('A1:H1').ColumnWidth = [10,8,8,8,8,8,8,8,20];

% 合并单元格
Sheet1.Range('A1:A4').MergeCells = 1;
Sheet1.Range('B1:C1').MergeCells = 1;
Sheet1.Range('B2:C2').MergeCells = 1;
Sheet1.Range('B3:C3').MergeCells = 1;
Sheet1.Range('B4:C4').MergeCells = 1;
Sheet1.Range('A8:A9').MergeCells = 1;
Sheet1.Range('D3:E3').MergeCells = 1;
Sheet1.Range('E8:H8').MergeCells = 1;
Sheet1.Range('D4:E4').MergeCells = 1;
Sheet1.Range('G4:H4').MergeCells = 1;
Sheet1.Range('I1:I4').MergeCells = 1;

% 设置单元格的边框
Sheet1.Range('A1:I4').Borders.Weight = 3;

% 写入单元格内容
Sheet1.Range('A1:A4').Value = '毕业生信息';
Sheet1.Range('B1:C1').Value = '  姓 名  ';
Sheet1.Range('A2:C2').Value = '政治面貌';
Sheet1.Range('A3:C3').Value = '通讯地址';
Sheet1.Range('A4:C4').Value = 'E-mail';
Sheet1.Range('E1').Value = '性别';
Sheet1.Range('E2').Value = '健康状况';
Sheet1.Range('F4').Value = '现居住地址';
Sheet1.Range('G1').Value = '出生年月';
Sheet1.Range('G2').Value = '联系电话';
Sheet1.Range('G3').Value = '邮政编码';

发布了53 篇原创文章 · 获赞 174 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/zzx2016zzx/article/details/87458541