一个简单的Delphi导出Excel的例子,只为与大神们共同学习。
以一个出货通知单导出到Excle作为例:

procedure TfrmGosuncnClientInvProdShip.ExportReceiptInfo(Sender: TObject);
var h,k,top_height:integer;
Excelid,FPicture,sheet: OleVariant;
s,s1,s2,AuditNo,Sell_No,tmpstr,receiptNo,mtrl_desc,mtrl_desc_new,mtrl_name: string;
Q,Q1:TPgClientSimpleDataEntity;
asheet1,achart, range:variant;//范围
split:Char;
AuditNos:TArray;
begin
try
Excelid := CreateOLEObject(‘Excel.Application’); //创建Excel
except
Application.MessageBox(‘Excel没有安装!’, ‘提示信息’,MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);
Exit;
end;
AuditNo:=etAUDIT_ID.Text;
if AuditNo=‘’ then
raise TPgError.Create(‘请选择出货通知单!’);
try
top_height:=0;
Q := TPgLib.CreateDataEntity;
Q.Close;
Q.CommandText := ‘select * from TB_MM_AUDIT_HD where AUDIT_ID =:AUDIT_ID’;
Q.Params.ParamByName(‘AUDIT_ID’).AsString := AuditNo;
Q.Open;
if not Q.IsEmpty then
begin
Sell_No:=Q.FieldByName(‘AUDIT_EX1’).AsString;
end;
Excelid.Visible := True;
Excelid.WorkBooks.Add;

sheet := Excelid.WorkSheets[1];
sheet.Select;
sheet.Columns[1].ColumnWidth:=30;
sheet.Columns[2].ColumnWidth:=14;//设置列宽度
sheet.Columns[3].ColumnWidth:=14;
sheet.Columns[4].ColumnWidth:=18;
sheet.Columns[5].ColumnWidth:=5;
sheet.Columns[6].ColumnWidth:=5;
sheet.Columns[7].ColumnWidth:=15;
sheet.Columns[8].ColumnWidth:=20;//插入图象e79fa5e98193e59b9ee7ad9431333363393665并设置位置与大小
tmpstr:='\\127.0.0.1\picture\XXX.png';
if not TFile.Exists(tmpstr) then
beginExcelid.Quit;raise Exception.Create('\\127.0.0.1路径下不存在名字为【XXX.png】图片,请添加该图片到此目录下');
end;
FPicture:=sheet.Pictures.Insert(tmpstr);
FPicture.Left:=205;
FPicture.Top:=0;
FPicture.width:=125;//HorizontalAlignment(水平) 左对齐(-4131),居中(-4108),右对齐(-4152)
//VerticalAlignment(垂直) 上对齐(-4160),居中(-4108),下对齐(-4107)sheet.Range['B1:H1'].Merge(True); //第2单元格-第7单元格合并成1个
sheet.Cells[1,2].Value :='         设置Excel标题' ;
sheet.Cells[1,10].Value :='XXXX' ;
sheet.Cells[1,2].HorizontalAlignment:=-4108;    //居中显示
sheet.Range['B1:H1'].Font.Name := '黑体';
sheet.Range['B1:H1'].Font.Size := 17;
sheet.range['B1:H1'].font.bold:=true;
sheet.Rows[1].RowHeight :=28;
top_height:= top_height+28;//sheet.Rows[2].RowHeight :=18;
sheet.range['B2:H2'].Merge(True);
sheet.Cells[2,2].Value := 'GS-P-W-009-001A0';
sheet.Range['B2:H2'].Font.Name := '黑体';
sheet.Rows[2].RowHeight :=18;
top_height:= top_height+18;sheet.Cells[2,10].Value := 'XXX';
sheet.Cells[3,2].Value := '订单编号:';
sheet.Cells[3,2].HorizontalAlignment:=-4108;
sheet.range['B3:B3'].font.bold:=true;
sheet.range['C3:F3'].Merge(True);
sheet.Cells[3,3].Value := Sell_No;//Q.FieldByName('AUIDT_EX1').AsString;
sheet.Cells[3,7].Value := '发货批次号:';
sheet.Cells[3,7].HorizontalAlignment:=-4108;
sheet.range['G3:G3'].font.bold:=true;
sheet.Cells[3,8].Value :='';
sheet.Range['B3:H3'].Borders.LineStyle := 1;
//sheet.Range['B3:H3'].Borders[3].LineWeight := 2;    //指定边框线宽度:1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
sheet.Range['B3:H3'].Font.size := 12;
sheet.Rows[3].RowHeight:=30;
top_height:= top_height+30;sheet.Cells[4,2].Value := '用户单位:';
sheet.Cells[4,2].HorizontalAlignment:=-4108;
sheet.range['B4:B4'].font.bold:=true;
sheet.range['C4:F4'].Merge(True);
sheet.Cells[4,3].Value := '';
sheet.Cells[4,7].Value := '发货日期:';
sheet.Cells[4,7].HorizontalAlignment:=-4108;
sheet.range['G4:G4'].font.bold:=true;
sheet.Cells[4,8].Value := DateTimeToStr(date());
sheet.Cells[4,8].HorizontalAlignment:= -4131;
sheet.Range['B4:H4'].Borders.LineStyle := 1;
sheet.Range['B4:H4'].Font.size := 12;
sheet.Rows[4].RowHeight:=30;
top_height:= top_height+30;sheet.Cells[5,2].Value := '项目名称:';
sheet.Cells[5,2].HorizontalAlignment:=-4108;
sheet.range['B5:B5'].font.bold:=true;sheet.range['C5:F5'].Merge(True);
sheet.Cells[5,3].Value := '';
sheet.Range['C5:C5'].WrapText :=True;   //换行
sheet.Cells[5,7].Value := '项目编码:';
sheet.Cells[5,7].HorizontalAlignment:=-4108;
sheet.range['G5:G5'].font.bold:=true;
sheet.Cells[5,8].Value := '';
sheet.Range['B5:H5'].Borders.LineStyle := 1;
sheet.Range['B5:H5'].Font.size := 12;
sheet.Rows[5].RowHeight:=30;
top_height:= top_height+30;GXX_ExcelRange(sheet,range,'收货地址','B6:B7');
GXX_ExcelRange(sheet,range,'','C6:F7');
//sheet.Cells[6,2].Value := '收货地址:';
sheet.Cells[6,2].HorizontalAlignment:=-4108;
sheet.range['B6:B6'].font.bold:=true;
//sheet.range['B6:B7'].Merge(True);//sheet.range['C6:C7'].Merge;
//sheet.range['C6:F6'].Merge(True);  //合并单元格
//sheet.range['C7:F7'].Merge(True);//sheet.range['B6:B7'].Merge(True);//sheet.Cells[6,3].Value :='';
sheet.Cells[6,3].HorizontalAlignment:=-4131;
//sheet.Range['C6:C6'].WrapText:=True;
sheet.Cells[6,7].Value := '联系人:';
sheet.Cells[6,7].HorizontalAlignment:=-4108;
sheet.range['G6:G6'].font.bold:=true;
sheet.Cells[6,8].Value := '';
sheet.Cells[7,7].Value := '联系电话:';
sheet.Cells[7,7].HorizontalAlignment:=-4108;
sheet.range['G7:G7'].font.bold:=true;
sheet.Cells[7,8].Value:='';
sheet.Cells[7,8].HorizontalAlignment:=-4131;
sheet.Cells[7,8].Value := '';
sheet.Range['B6:H6'].Borders.LineStyle := 1;
sheet.Range['B7:H7'].Borders.LineStyle := 1;
sheet.Range['B6:H6'].Font.Size := 12;
sheet.Range['B7:H7'].Font.Size := 12;sheet.Cells[8,2].Value := '设备名称';
sheet.range['C8:D8'].Merge(True);
sheet.Cells[8,3].Value := '设备内容';
sheet.Cells[8,5].Value := '单位';
sheet.Cells[8,6].Value := '数量';
sheet.Cells[8,7].Value := '箱号';
sheet.Cells[8,8].Value := '每套装箱';
sheet.Cells[8,2].HorizontalAlignment:=-4108;
sheet.Cells[8,3].HorizontalAlignment:=-4108;
sheet.Cells[8,5].HorizontalAlignment:=-4108;
sheet.Cells[8,6].HorizontalAlignment:=-4108;
sheet.Cells[8,7].HorizontalAlignment:=-4108;
sheet.Cells[8,8].HorizontalAlignment:=-4108;
sheet.Range['B8:H8'].Font.Name := '宋体';
sheet.Range['B8:H8'].Font.Size := 12;
sheet.range['B8:H8'].font.bold:=true;
sheet.Range['B8:H8'].Borders.LineStyle := 1;
sheet.Rows[6].RowHeight:=30;
top_height:= top_height+30;
sheet.Rows[7].RowHeight:=30;
top_height:= top_height+30;
sheet.Rows[8].RowHeight:=20;
top_height:= top_height+20;sheet.Cells[h,1].Value := '';sheet.Cells[h,2].Value := '';  //物料名称sheet.Cells[h,3].Value :='';//sheet.Cells[h,5].Value := '';sheet.Cells[h,6].Value :='';         //拿未完成数量sheet.Cells[h,1].HorizontalAlignment:=-4108;sheet.Cells[h,2].HorizontalAlignment:=-4108;sheet.Cells[h,3].HorizontalAlignment:=-4108;sheet.Cells[h,5].HorizontalAlignment:=-4108;sheet.Cells[h,6].HorizontalAlignment:=-4108;sheet.Cells[h,7].HorizontalAlignment:=-4108;sheet.Cells[h,8].HorizontalAlignment:=-4108;s1:='C'+IntToStr(h)+':D'+IntToStr(h);sheet.range[s1].Merge(True);s:='B'+IntToStr(h)+':H'+IntToStr(h);sheet.Range[s].Font.Name := '宋体';sheet.Range[s].Font.size := 12;sheet.Range[s].Borders.LineStyle := 1;sheet.Range[s].WrapText :=True;     //允许自动换行sheet.Rows[h].RowHeight:=50;top_height:= top_height+50;sheet.Cells[h,2].HorizontalAlignment:=-4108;
s:='B'+IntToStr(h)+':B'+IntToStr(h+2);sheet.range[s].font.bold:=true;sheet.Cells[h,3].Value := '总重量';
sheet.Cells[h,3].HorizontalAlignment:=-4108;
sheet.Cells[h,4].Value := '';//Q1.FieldByName('AUDIT_QTY').AsString;
sheet.Cells[h,4].HorizontalAlignment:=-4108;
s:='E'+IntToStr(h)+':F'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,5].Value := 'KG';
sheet.Cells[h,5].HorizontalAlignment:=-4108;
//sheet.Cells[h,7].Value := '提货人签名';
sheet.Cells[h,7].HorizontalAlignment:=-4108;
s:='G'+IntToStr(h)+':G'+IntToStr(h+2);sheet.range[s].font.bold:=true;
sheet.range[s].WrapText:=True;
s:='H'+IntToStr(h)+':H'+IntToStr(h+2);sheet.Cells[h,8].Value := '';
sheet.Cells[h,8].HorizontalAlignment:=-4108;
s2:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s2].Borders.LineStyle := 1;
sheet.Range[s2].Font.size := 12;
sheet.Rows[h].RowHeight:=20;
top_height:= top_height+20;h:=h+1;
sheet.Cells[h,3].Value := '总体积';
sheet.Cells[h,3].HorizontalAlignment:=-4108;
sheet.Cells[h,4].Value := '';
sheet.Cells[h,4].HorizontalAlignment:=-4108;
s:='E'+IntToStr(h)+':F'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,5].Value := '立方米';
sheet.Cells[h,5].HorizontalAlignment:=-4108;
s2:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s2].Borders.LineStyle := 1;
sheet.Range[s2].Font.size := 12;
sheet.Rows[h].RowHeight:=20;
top_height:= top_height+20;h:=h+1;
sheet.Cells[h,3].Value := '总箱数';
sheet.Cells[h,3].HorizontalAlignment:=-4108;
sheet.Cells[h,4].Value := '';
sheet.Cells[h,4].HorizontalAlignment:=-4108;
s:='E'+IntToStr(h)+':F'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,5].Value := '箱';
sheet.Cells[h,5].HorizontalAlignment:=-4108;
s2:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s2].Borders.LineStyle := 1;
sheet.Range[s2].Font.size := 12;
sheet.Rows[h].RowHeight:=20;
top_height:= top_height+20;h:=h+1;
sheet.Cells[h,2].Value := '检验';
sheet.Cells[h,2].HorizontalAlignment:=-4108;
s:='B'+IntToStr(h)+':B'+IntToStr(h);
sheet.range[s].font.bold:=true;
s:='C'+IntToStr(h)+':D'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,3].Value := '';
sheet.Cells[h,3].HorizontalAlignment:=-4108;
s:='E'+IntToStr(h)+':F'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,5].Value := '发货单位(盖章)';
sheet.Cells[h,5].HorizontalAlignment:=-4108;
sheet.range[s].font.bold:=true;
sheet.range[s].WrapText:=True;
s:='G'+IntToStr(h)+':H'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,7].Value := '';
sheet.Cells[h,7].HorizontalAlignment:=-4108;
s2:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s2].Borders.LineStyle := 1;
sheet.Range[s2].Font.size := 12;
sheet.Rows[h].RowHeight:=33;
top_height:= top_height+33;h:=h+1;
sheet.Cells[h,2].Value := '是否易损件';
sheet.Cells[h,2].HorizontalAlignment:=-4108;
s:='B'+IntToStr(h)+':B'+IntToStr(h);
sheet.range[s].font.bold:=true;
s:='C'+IntToStr(h)+':H'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,3].Value := '';
s:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s].Borders.LineStyle := 1;
sheet.Range[s].Font.size := 12;
sheet.Rows[h].RowHeight:=20;
top_height:= top_height+20;h:=h+1;
ExcelContent('温馨提示',h,Excelid);
sheet.Cells[h,2].HorizontalAlignment:=-4108;    //居中显示
s:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s].Font.size := 20;
sheet.range[s].font.bold:=true;
sheet.Rows[h].RowHeight:=25;
top_height:= top_height+25;
sheet.Range[s].Borders.LineStyle := 1;
sheet.Range[s].Borders[3].LineStyle := 7;
sheet.Range[s].Borders[4].LineStyle := 7;{$REGION '生成二维码'}
_split_:='_';
if AuditNo.Contains('_JH_') then
beginAuditNos:=AuditNo.Split(_split_);receiptNo:=AuditNos[2];Update(receiptNo,AuditNo);tmpstr:='\\127.0.0.1\picture\QRCodeImg\'+AuditNo+'\'+receiptNo+'.png';FPicture:=sheet.Pictures.Insert(tmpstr);FPicture.Left:=695;FPicture.Top := top_height;       //获取二维码距离顶部的高度  FPicture.width:=60;
end;
{$ENDREGION}h:=h+1;
//sheet.Cells[h,2].Value := '收货确认';
sheet.Cells[h,2].HorizontalAlignment:=-4108;
s:='B'+IntToStr(h)+':B'+IntToStr(h+1);sheet.range[s].Font.bold:=True;
sheet.Cells[h,3].Value := '收货总箱数:';
sheet.Cells[h,3].HorizontalAlignment:=-4108;
sheet.Cells[h,4].Value := '';
s:='E'+IntToStr(h)+':G'+IntToStr(h+1);sheet.range[s].Merge(True);
sheet.Cells[h,5].Value := '收货人签名:';
sheet.Cells[h,5].HorizontalAlignment:=-4108;
sheet.range[s].Font.bold:=True;sheet.Cells[h,8].Value := '';
s2:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s2].Borders.LineStyle := 1;
sheet.Range[s2].Font.size := 12;
sheet.Rows[h].RowHeight:=18;h:=h+1;
sheet.Cells[h,3].Value := '收货日期';
sheet.Cells[h,3].HorizontalAlignment:=-4108;
sheet.Cells[h,4].Value := '';
s:='E'+IntToStr(h)+':G'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,5].Value := '签收单位(盖章):';
sheet.Cells[h,5].HorizontalAlignment:=-4108;
sheet.range[s].Font.bold:=True;
sheet.Cells[h,8].Value := '';s2:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.Range[s2].Borders.LineStyle := 1;                      //1实线 2虚线 7双实线
sheet.Range[s2].Font.size := 12;
sheet.Rows[h].RowHeight:=18;h:=h+1;
s:='B'+IntToStr(h)+':H'+IntToStr(h);
sheet.range[s].Merge(True);
sheet.Cells[h,2].Value := '      请 货 运 公 司 提 前 一 天 预 约 送 货 时 间!  谢 谢!      ';
sheet.Cells[h,2].HorizontalAlignment:=-4108;    //居中显示
sheet.Range[s].Font.Size := 14;
sheet.range[s].font.bold:=true;
sheet.Rows[h].RowHeight:=18;Excelid.Quit;

except on e:Exception do
begin
//Application.MessageBox(‘导入数据出错!请检查文件的格式是否正确!’, ‘提示信息’, MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);
//Application.MessageBox(PChar(E.Message), ‘error’, 16);//抛出异常信息
raise Exception.Create(E.Message);
end;
end;
MessageBox(GetActiveWindow(), ‘EXCEL数据导出成功!’, ‘提示信息’,
MB_OK +MB_ICONWARNING);
end;

中间有很多是我项目中的需要用到的地方,大家在使用的时候记得替换掉,放入自己项目中的内容即可!

示例中的二维码是先生成,在导入到Exclel中,如有直接在Exclel中生成二维码的,可以留言交流,谢谢!

Delphi 导出Excel功能相关推荐

  1. 假导出Excel功能实现,按CSV格式快速导出功能代码参考(追求代码追求简洁复用)...

    我们辛苦录入的数据都希望能有重复利用的价值,一方面这些基础数据需要有数据库级的重复利用,程序级别的重复利用,另一方面还需要直接可以方便的导出倒入的功能比较好,虽然我们自己制作的统计分析功能很强大,但是 ...

  2. django excel 导出页面_Django Admin中增加导出Excel功能过程解析

    在使用Django Admin时, 对于列表我们有时需要提供数据导出功能, 如下图: 增加导出Excel功能 在Django Admin中每个模型的Admin类(继承至admin.ModelAdmin ...

  3. Java集成Hutool实现导出Excel功能

    原文来自:https://www.j1angrui.cn/article/2019081623 在工作中刚完成项目集成Hutool实现导出Excel功能,现在记录一下实现过程,方便以后作为例子参考. ...

  4. ruoyi框架默认的导出Excel功能代码简析

    ruoyi框架默认导出Excel功能 项目使用的是RuoYi Bootstrap多模块版本4.7.2,启动项目后会有默认的导出功能.包括使用ruoyi自带代码生成器,都会有导出功能的附带.接下就讲解一 ...

  5. java利用poi导出excel功能-附带图片导出

    java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...

  6. 服务器导出excel文档,服务器导出excel功能配置

    服务器导出excel功能配置 内容精选 换一换 该任务指导用户完成Linux云服务器的相关配置与其他驱动的安装,为最终生成的Linux裸金属服务器私有镜像做准备.配置Linux云服务器.具体操作请参考 ...

  7. jQuery实现表格导出Excel功能

    jQuery实现表格导出Excel功能 jquery实现表格导出Excel功能,这里我们用到jquery的一个小插件:jquery-table2excel jquery-table2excel线上引用 ...

  8. vue+iView实现导入与导出excel功能

    vue+iView实现导入与导出excel功能 一,需求: 1,导入导出的必要性 导入与导出在日常项目开发中经常用到, 批量导入功能可以快速插入添加数据. 导出功能则可方便直观明了拿到所需展示的重要数 ...

  9. vue项目导出EXCEL功能

    因为一些原因导出EXCEL功能必须前端来做,所以就研究了一下,在网上也找了一些文章来看,有一些不完整,我做完了就记录下来,供大家参考: 1.首先先安装依赖: npm install file-save ...

  10. vue导出excel功能实现

    vue导出excel功能实现 第一步安装依赖包 第二步在项目中assets创建一个新的文件夹js用于存放Blob和Export2Excel两个js文件 第三步在你那个组件中使用 写事件方法 Expor ...

最新文章

  1. 中科曙光携手甘肃酒泉,积极构建新型智慧城市
  2. 记一次WiFi芯片W600上串口只能回显的问题
  3. unity的自带特性
  4. 相似邻里算法_纽约市-邻里之战
  5. 又一位…8月,痛失6位院士!
  6. Spring cloud开发内存占用过高解决方法
  7. 打印工资条怎么做到每个人都有表头明细_现在还在用订书钉装订工资条,算是一种落后吗?你的公司怎么发?...
  8. [SDOI2011]工作安排 BZOJ2245
  9. 腾讯广告算法大赛官方“开挂”,为你直播赛题解析!
  10. WebSocket 解决javascript跨域问题一剂良药
  11. java中动态代理的使用
  12. 嵌入式Linux环境变量如何参与程序运行
  13. Admin.Admin/Login --- 后台项目中的管理员及登录模块
  14. Python入门学习资料分享
  15. 简单工厂模式 简单例子
  16. 线性代数 or 量子力学 ?(七——薛定谔方程详解)
  17. Bugzilla使用手册
  18. set transaction
  19. 函数连续,函数可微,函数可导,偏导数存在,偏导数连续之间的关系
  20. 32.判断日期的合法性(对于8位数的判断)

热门文章

  1. 大数据安全与隐私保护的问题及对策
  2. Spring学习-入门
  3. linux dns mx 记录,一起学DNS系列(十三)图文详说A、CNAME、MX和NS记录
  4. 微信小程序 ui框架使用
  5. 金融风控建模评分卡系列:机器学习特征选择方法
  6. C语言字符串输出中文乱码
  7. myeclipse复制的文件代码乱码
  8. TIBCO Spotfire 入门指南
  9. DDCTFMulTzor-xoortol的使用
  10. rstudio教程 java_RStudio的使用教程