首页 > 其他分享 >Delphi导入Excel数据

Delphi导入Excel数据

时间:2024-10-28 09:47:16浏览次数:3  
标签:begin end Delphi Excel iCol 导入 XLSReadWriteII51 MsExcel

第一种用XLSReadWriteII51

procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  rows, cols: Integer;
  sRow, sCol: Integer;
begin
  sRow := 0;  //开始行
  sCol := 0;   //开始列
  if OpenDialog1.Execute() then
  begin
    XLSReadWriteII51.Filename := OpenDialog1.FileName;
    XLSReadWriteII51.Clear;
    XLSReadWriteII51.Read;
    rows := XLSReadWriteII51.Sheets[0].LastRow + 1;
    cols := XLSReadWriteII51.Sheets[0].LastCol + 1;
    AdvStringGrid1.RowCount := rows;
    AdvStringGrid1.ColCount := cols;
    for var r := sRow to rows - 1 do
    begin
      for var c := sCol to cols - 1 do
      begin
        AdvStringGrid1.Cells[c - sCol + 1, r - sRow] := XLSReadWriteII51.Sheets[0].AsString[c, r];
      end;
    end;
  end;
end;

第二种方式

uses
  Comobj;

procedure TForm1.dxBarLargeButton1Click(Sender: TObject);
const
  BeginRow = 1;
  BeginCol = 2;
var
  iRE, I: Integer;
  iRow, iCol: Integer; //列、行
  MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant;
begin
  try
    if not OpenDialog1.Execute then
    begin
      Exit;
    end;
    try
      MsExcel := CreateOleObject('Excel.Application');
    except
      MessageBox(Self.Handle, '本机未安装Excel, 请先安装Excel再执行本操作!', '警告!', 0);
      Exit;
    end;
    MsExcel.visible := False;
    MsExcelWorkBook := MsExcel.WorkBooks.Open(OpenDialog1.FileName);
  except
    Exit;
  end;
  try
    iRow := BeginRow;
    iCol := BeginCol;
    I := 10000;
    FDMemTable1.Close;
    FDMemTable1.Open;
    while Trim(MsExcel.WorkSheets[1].Cells[iCol, iRow].value) <> '' do
    begin
      with FDMemTable1 do
      begin
        Append;
        FDMemTable1barcode.Value := Trim(MsExcel.WorkSheets[1].Cells[iCol, iRow + 0].value); //第一列
        FDMemTable1codename.Value := Trim(MsExcel.WorkSheets[1].Cells[iCol, iRow + 1].value); //第二列
        Post;
      end;
      iCol := iCol + 1;
      I := I + 1;
      Application.ProcessMessages; //防止进程阻塞
    end;
    MsExcel.Quit;
  except
    MessageBox(Self.Handle, '数据导入失败!', '警告!', 0);
    MsExcel.Quit;
    Exit;
  end;
  MessageBox(Self.Handle, '数据导入成功!', '提示!', 0);
end;

 

标签:begin,end,Delphi,Excel,iCol,导入,XLSReadWriteII51,MsExcel
From: https://www.cnblogs.com/liessay/p/18509745

相关文章

  • 基于SSM的心理咨询管理管理系统(含源码+sql+视频导入教程+文档+PPT)
    ......
  • python可以对excel进行那些操作
    根据标题“Python可以对Excel进行哪些操作”,Python对Excel的操作能力强大,涵盖数据读写、格式设置、图表创建、数据分析和自动化处理等功能。例如,1、读取和写入数据:Python可以读取Excel文件中的数据,并将数据写入到Excel中;2、格式设置:Python能够调整字体、颜色、单元格的大小和排列;3......
  • [笔记] SpringBoot3 使用 EasyExcel 封装工具类实现 自定义表头 导出并实现 数据格式
    在现代企业应用中,数据导出功能是非常常见的需求。特别是在处理大量数据时,将数据导出为Excel文件不仅方便用户查看和分析,还能提高数据处理的效率。ApachePOI是一个常用的JavaExcel处理库,但它在处理大数据量时性能较差。为此,阿里巴巴开源了EasyExcel,这是一个基于Java......
  • 提取PDF文档中的表格转换成Excel表格【一】
    前言有一个朋友是做跨境电子商务的,开了几个商务网店,每天早上上班的时候,都要求员工从各个商店下载大量商品记录,并进行汇总分析,但下载的都是包含表格的PDF格式,只能手工摘录PDF表格数据保存到一个Excel,这样做费时费力又容易出错,所以精心了个小程序,可以批量提取PDF文档的表格......
  • Excel导入到MySQL里
    0]MySQL报错出现TheMySQLserverisrunningwiththe--secure-file-privoptionsoitcannotexecutethisstatement。解决办法:1.找到mysql的存储路径:  2.打开my.ini(以记事本方式打开即可)[mysqld]secure_file_priv=''  添加该句。3.重启mysql1]先根据X......
  • C++/CLI使用Office.Interop库创建excel,同时解决写入速度慢的问题
    boolWriteExcelFile_OfficeInterop(String^path,DataSet^dt, conststd::vector<std::string>&sheetName,boolhideColumnName) { //Ifthefilealreadyexists,deleteitandthengeneratefile if(System::IO::File::Exists(path)) { try......
  • XLSX.js解析Excel中的日期格式数据遇到的问题
    使用xlsx.js读取Excel中的日期有两种方式:XLSX.read(file,{type:'binary'})XLSX.read(file,{type:'binary',cellDates:true})通过第一种方式读取日期,解析结果是Excel中保存的数字(Excel会将日期保存为数字。例如,将2020/09/30由日期格式改成文本格式时,会得到一个44104......
  • XLSX.js解析Excel中的数据,<input type='file' />控件中
    在页面中添加一个:<inputtype="file"class="txt"style="width:300px;height:25px;line-height:25px;color:#000000;"id="file01"/>在页面中添加javascript代码:document.getElementById("file01").addEventLis......
  • Java EasyExcel 导出报内存溢出的原因与解决方案
    JavaEasyExcel导出报内存溢出的原因与解决方案在现代企业级应用开发中,数据导出功能是一项常见且重要的任务。随着数据量的不断增长,如何高效、稳定地完成数据导出成为开发者面临的一大挑战。EasyExcel是阿里巴巴开源的一款基于Java的Excel处理工具,它以其高效、简洁的特性,广泛......
  • 如何把一个python列表(有很多个元素)变成一个excel表格的第一列?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【麦当】的粉丝问了一个关于Python如何把一个python列表(有很多个元素)变成一个excel表格的第一列的问题,这里拿出来给大家分享下,一起学习。二、解决过程这里给出【dcpeng】和【德善堂小儿推拿-瑜亮老师】大佬......