因为淘宝客户的一个小需求,写了一个“基于delphi 7的excel数据导入导出”小工具。为了抛砖引玉,将这个小工具分享出来。希望对初学者和用得到的朋友有点点小小的帮助。oracle数据库连接,注意中文编码问题。导入excel,可以将values的插入值用“()”、“,”拼接实现批量导入(实例:insert into  table(a,b,c)  values('aa','bb','cc'),('a1','a2','a3'),('b1','b2','b3')...('c1','c2','c3');

工具技术应用:Delphi 7 + mysql (或者mariaDB 10.3);

数据操作:导入excel、导出为text文件(导出excel雷同导入,可以自己加工一下10分钟搞定);

实现控件:ado:adoConnection连接、adoquery(select查询)、adocommand(SQL操作语句)、其他(按钮、edit、label);

源码:

一、MariaDB数据表SQL脚本:

CREATE TABLE `test` (
    `id` INT(10) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
    `code` VARCHAR(16) NOT NULL,
    `name` VARCHAR(24) NOT NULL,
    `state` INT(1) NOT NULL DEFAULT '1',
    `systime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=56
;

二、导入excel代码:

2.1 打开按钮:

if dlgOpen1.Execute then
              begin
                  edt2.Text := dlgOpen1.FileName;
              end;

2.2 导入excel按钮:

procedure TToolsFrm.pnl3Click(Sender: TObject);

//       uses Comobj;                 //
//       Excel 导入到数据库           //
//       bentti 2020.01.01 23:46:11  //

var
  ExcelApp:variant;
  InserSQL:string;
  ResultList:TStringList;
  ii,j:integer;
  vvOpenSQL,vvSaveSQL:string;
  myfloat:double;
begin
    ExcelApp:=CreateOleObject('Excel.Application');
    ExcelApp.visible:=False;
    ExcelApp.workbooks.open(Edt2.Text);
    //自适应宽度
    ExcelApp.worksheets[1].Cells.EntireColumn.AutoFit; //整个表所有列

j:=2;  //假定标题在第一行

with cmdTemp do
    begin    //修改数据表名、字段名
          InserSQL:='insert into test(code,name)  values';
          ii :=ExcelApp.WorkSheets[1].UsedRange.Rows.Count-1;
          vvSaveSQL :='';
          while ExcelApp.worksheets[1].cells[j,1].text<>'' do
              begin
                  CommandText := InserSQL + '('''+ExcelApp.worksheets[1].cells[j,1].text +''','''+ExcelApp.worksheets[1].cells[j,2].text +''');' ;
                  try
                    cmdTemp.Execute;
                    Application.ProcessMessages;
                  except
                    Application.MessageBox('导入excel球员数据发生错误,请与管理员联系!','提示信息',16)
                  end;

j:=j+1;
              end;
    end;

ExcelApp.Activeworkbook.close(false);
  ExcelApp.quit;
  ExcelApp:=unassigned;

with qryData do
   begin
      close;
      sql.Clear;
      sql.Text :='select * from test where state=1  order by systime desc';
      Active :=True;
   end;

end;

三、导出text文件:

3.1、打开数据:

with qryText do
   begin
      close;
      sql.Clear;
      sql.Text :='select * from test where state=1  order by systime desc';
      try
        Active :=True;
      except
        Application.MessageBox('打开数据发生错误,请与管理员联系!','提示信息',16)
      end;
   end;

3.2、设定保存文件路径:

if dlgSave1.Execute then
    begin
       edt3.Text :=dlgSave1.FileName;
    end;

3.3、导出text编码:

procedure TToolsFrm.pnl5Click(Sender: TObject);
var
    vOutText:textfile;
    vOutData:string;
begin
    assignfile(vOutText,edt3.Text);
    rewrite(vOutText);
    qryText.First ;
    while not qryText.Eof do
      begin
          vOutData:=qryText.Fields[0].AsString +'  '+ qryText.Fields[1].AsString ;
          writeln(vOutText,vOutData);
          qryText.Next ;
      end;
    closefile(vOutText);
    Application.MessageBox('text文件成功导出。','提示信息',48)
end;

源码奉上,有问题留言或者微信:bentti。

基于delphi的excel数据导入导出相关推荐

  1. java自定义注解实现excel数据导入导出,设置单元格数据验证与生成省市区多列联动效果

    本文通过自定义注解实现excel数据导入导出.以及设置excel文件中列数据验证,即用户在excel文件中输入数据时就可以对数据格式验证是否符合,节省了程序中过多的数据验证操作,注解还额外提供了一系列 ...

  2. 高性能 + 百万级excel数据导入导出

    高性能 + 百万级excel数据导入导出 内容介绍 github地址 使用文档地址 安装注意事项 仅以mac举例 ide中提示相关代码 下载demo 内容介绍 [转载]https://learnku. ...

  3. SpringBoot 整合eazyPoi 4.3.0 Excel数据导入导出(持续更新功能)

    目录 依赖 注解用法说明 @ExcelTarget 绑定Id @Excel 用在字段上面 @ExcelCollection 实体代码 Excel导出 正常数量导出(1-2W条) 大数据量导出 多she ...

  4. 基于NPOI的Excel数据导入

    从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...

  5. java横向导出excel_利用Java进行Excel的数据导入导出

    1. 引言 MS 的电子表格(Excel)是Office 的重要成员,是保存统计数据的一种常用格式.在一 个Java 应用中,将一部分数据生成Excel 格式,是与其他系统无缝连接的重要手段.在远程 ...

  6. C# excel文件导入导出

    在C#交流群里,看到很多小伙伴在excel数据导入导出到C#界面上存在疑惑,所以今天专门做了这个主题,希望大家有所收获! 环境:win10+vs2017 界面:主要以演示为主,所以没有做优化,然后主界 ...

  7. [Java中实现Excel表导入导出]基于easy-poi和EasyExcel两种方式实现

    第一种:基于easy-poi实现Excel导入导出 1.导出Excel表格 第一步:在pom文件中导入依赖 <!--基于easy-poi实现Excel导入导出--><dependen ...

  8. 基于PhalApi的PHPExcel扩展实现数据导入导出

    前言: 最近开发一款crm,使用PhalApi框架提供数据接口,要用公共接口来实现各个模块的数据导入导出功能.如果是单独的导入导出(一个模块一个导入导出接口)推荐大家使用 phpoffice/phps ...

  9. easypoi导出数值型_SpringBoot使用EasyPoi进行数据导入导出Excel(一)

    在实际项目开发中,对于Excel的导入导出还是很常见的需求,比如说将数据根据模板批量导入到数据库中,以及将数据库中的数据批量导出陈Excel的形式 现有需求: 下载固定的导入Excel模板 导入Exc ...

最新文章

  1. iOS Sprite Kit教程之滚动场景
  2. 这个“老婆生成器”说我有5个前妻...
  3. BCB中获得RichEdit 默认行间距
  4. 获得AndroidManifest.xml文件中meta-data的value值
  5. python中List的sort方法(或者sorted内建函数)的用法
  6. 写代码水平的几个发展阶段
  7. Win10 + Python + MXNet + VS2015配置
  8. cups共享linux打印机_linux入门-映射网络驱动器
  9. linux安全策略查询代码,Linux多安全策略和动态安全策略框架模块代码分析报告(14)...
  10. 浅论教材砍压并补联的原则
  11. [英中双语] Pragmatic Software Development Tips 务实的软件开发提示
  12. 网络化智能型维修电工电气控制技能实训智能考核装置
  13. html点击图片后图片移动,移动端点击图片放大图片,可左右切换图片
  14. 【NOIP practice】BSOJ 3132 卡扎菲 并查集
  15. 机器学习第四章之逻辑回归模型
  16. 各大搜索引擎收录地址
  17. 马云希望下辈子做女人,而我们希望这辈子做马云
  18. R语言绘制频率直方图
  19. 谷歌浏览器table不规则表格使用rowspan/colspan导致线条粗细不同
  20. 什么是领域模型?什么是数据模型

热门文章

  1. AI炒股:用Claude来分析A股2023年中报业绩预告
  2. SpringCloud——Nacos下载
  3. React中的render()
  4. 领英关闭中国业务领英职场!怎么保住自己的领英账号和好友并继续使用领英搜索开发客户?
  5. 电脑计算机找不到指定的程序,电脑打开IE浏览器显示找不到应用程序怎么解决...
  6. 用MATLAB仿真SCARA机器人,报错:未定义与 ‘char‘ 类型的输入参数相对应的函数 ‘Link‘
  7. 从零开始学黑客:网络黑客新手入门指南(转)
  8. 华为鸿蒙系统卡片,华为鸿蒙发布会:卡片的设计形态,让人相当触动
  9. 介绍几款在线传输网站
  10. Qt学习之自定义搜索框(两种方案)