`

Delphi从Excel导入

阅读更多
Delphi从Excel导入数据

要写一程序从Excel导入数据,从网上查到通用程序的写法,我只做了少量修改。

ExcelProUnit.pas
unit ExcelProUnit;

interface
type
  TExcelFunction = procedure(asheet: OleVariant); //声明导入函数

  {访问单元格:sheet.cells[row,col]

转为string:vartostr(sheet.cells[row,col])

转为datetime:vartodatetime(sheet.cells[row,col])

}
  //afilename为数据源文件名,func为执行导入的函数
procedure RunExcelApplication(afilename: string; func: TExcelFunction);

implementation
uses Controls, Forms, ComObj, windows, sysutils;

procedure RunExcelApplication(afilename: string;
  func: TExcelFunction);
var
  app: OleVariant;
  oldCursor: TCurSor;
begin
  oldCursor := Screen.Cursor;
 //保存鼠标指针状态
  Screen.Cursor := crHourGlass;
  try
    CoInitializeEx(nil, 0);
    app := CreateOleObject('Excel.Application');
    try
      app.DisplayAlerts := False;
      app.WorkBooks.open(afilename);
//打开源文件
      app.WorkSheets[1].Activate;
      app.visible := False; //隐藏excel窗体
      if Assigned(func) then //执行导入函数
        func(app.ActiveSheet); //传递sheet给函数进行导入
    finally
      app.WorkBooks.close;
      app.quit; //关闭推出excel
      Screen.Cursor := oldCursor;
    end;
  except on e: Exception do
    begin
      MessageBox(GetActiveWindow, pchar(e.message), '提示', MB_OK + MB_ICONINFORMATION);
      Screen.Cursor := OldCursor;
      Exit;
    end;
  end;
end;

end.


主要考虑的地方是传进去的函数的写法。以下写法没有进行过多的细化主要是完成功能。

ExcelMainUnit.pas
unit excelmainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses ExcelProUnit;
var
  sl: tStrings;
{$R *.dfm}

procedure GetFromExcel(asheet: OleVariant);
var
  s, rs: string;
  row: integer;
begin
  row := 1;
  s := trim(vartostr(aSheet.cells[row, 1]));
  while s <> '' do
  begin
    rs := '';
    rs := rs + vartostr(aSheet.cells[row, 1]) + '  ';
    rs := rs + vartostr(aSheet.cells[row, 2]) + '  ' + vartostr(aSheet.cells[row, 3]);
    inc(row);
    sl.Add(rs);
    s := trim(vartostr(aSheet.cells[row, 1]));
  end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  sl := TStringList.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  RunExcelApplication(ExtractFilePath(application.ExeName) + 'success.xlsx', GetFromExcel);
  memo1.Lines.AddStrings(sl);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  RunExcelApplication(ExtractFilePath(application.ExeName) + 'success.xls', GetFromExcel);
  memo1.Lines.AddStrings(sl);
end;

end.


其中Excel数据为:
 
姓名	成绩	备注	   
Danny	100	完胜	   
Way	99	差一分完胜	   
Jay	59	没及格,太难受了	   
Joan	77	中等	 



读取数据为:
姓名  成绩  备注
Danny  100  完胜
Way  99  差一分完胜
Jay  59  没及格,太难受了
Joan  77  中等


2011-5-27 23:10 danny
分享到:
评论

相关推荐

    DELPHI 从EXCEL导入到数据库

    标题中的"DELPHI 从EXCEL导入到数据库"是一个关于使用Delphi编程语言将Excel电子表格中的数据导入到数据库的应用实例。这个话题涉及到多个IT领域的知识点,包括Delphi编程、Excel文件处理以及数据库交互。 Delphi是...

    delphi EXCEL导入SQL源码

    本主题聚焦于使用Delphi编程语言实现Excel数据的导入到SQL数据库的过程。Delphi,作为一个强大的RAD(快速应用开发)工具,以其高效的VCL组件库闻名,允许开发者便捷地处理各种数据操作。 首先,我们需要理解的是...

    Delphi中从Excel导入数据的通用方法

    在Delphi编程环境中,从Excel导入数据是一项常见的需求,尤其在数据分析、报表处理或数据库集成等场景下。本文将详细探讨如何实现这个功能,并提供一个通用的方法。 首先,要完成这个任务,我们需要一个能与Excel...

    delphi中excel导入与导出实例

    在Delphi编程环境中,处理Excel数据是一项常见的任务,这通常涉及到数据的导入和导出功能。本实例将探讨如何在Delphi中实现Excel文件的读取和写入操作,以便于数据交换和处理。 首先,我们需要了解Delphi中用于与...

    delphi的excel导入sqlserver2000

    本篇文章将详细探讨如何使用Delphi编程环境将Excel数据导入到SQL Server 2000数据库中。Delphi是一款强大的RAD(快速应用开发)工具,它提供了丰富的组件和库,使得开发者能够方便地与各种数据库进行交互。在本场景...

    delphi2010将excel文件导入access数据库

    Delphi 将 Excel 文件导入 Access数据库 在本篇文章中,我们将探讨如何使用 Delphi 2010 将 Excel 文件导入 Access 数据库。Delphi 2010 是一个功能强大且流行的集成开发环境(IDE),它提供了许多强大的功能和组件...

    Delphi 从EXCEL文件导入到SQLSERVER数据表中 源码

    标题中的"Delphi 从EXCEL文件导入到SQLSERVER数据表中 源码"指的是一个使用Delphi编程语言编写的程序,该程序能够将数据从Excel文件读取并导入到SQL Server数据库的特定表中。这个过程通常涉及到数据迁移或数据整合...

    delphi做的excel导入access

    本项目涉及的是使用Delphi实现Excel数据导入到Access数据库的过程,这在数据迁移、数据分析或系统集成等场景中非常常见。下面将详细介绍这个过程中的关键知识点。 1. **Delphi组件库**:Delphi提供了丰富的组件库,...

    delphi Excel 导入的例子

    在Delphi编程环境中,开发人员经常需要处理与Excel文件交互的任务,例如导入Excel数据到应用程序中。本示例提供了一种方法,无需依赖Microsoft Excel应用程序,仅通过引用特定的Sources来实现这一功能。这种方式的...

    Delphi将Excel导入Access(菜鸟版)

    通过以上步骤,一个简单的Delphi程序就能完成从Excel到Access的数据导入。对于更复杂的需求,如处理不同工作表、过滤数据或转换数据格式,可能需要添加更多的逻辑和代码。在实际项目中,还可以考虑使用其他第三方库...

    delphi中把excel数据导入access表

    在Delphi编程环境中,将Excel数据导入到Access数据库是一项常见的任务,这有助于数据的整合与管理。本篇文章将详细介绍如何使用Delphi实现这一过程。 首先,我们需要了解涉及到的关键技术组件。Delphi自身并不直接...

    DELPHI_EXCEL导入导出.txt

    ### DELPHI_EXCEL导入导出技术解析 #### 标题与描述概述 本文档主要介绍了在Delphi程序中实现数据导出至Excel文件及从Excel文件导入数据的方法。通过提供的实用代码,开发者能够轻松地将数据库中的数据转换成Excel...

    Delphi中将Excel数据导入到数据库中

    在Delphi编程环境中,将Excel数据导入到数据库是一项常见的任务,尤其在数据处理和报表生成时。本篇文章将深入探讨如何使用Delphi的COM对象(Component Object Model)接口与Microsoft Excel进行交互,并将数据顺利...

    Delphi报表的Excel导入导出操作实例

    本实例将深入探讨如何在Delphi中实现Excel的导入与导出功能,这对于数据交换、报告生成和分析至关重要。 一、引入必要的组件 在Delphi中进行Excel操作,我们通常会用到第三方组件,如TMS Software的TMS Office ...

    Delphi调用Excel报表进行数据导入导出.rar

    Delphi调用Excel报表进行数据导入导出,Delphi通过调用Excel报表组件,将Delphi自身ListView数据导入到Excel文档中,导入完毕可通过Delphi窗口关闭Excel文档,除此之外,生成打印预览,程序界面如上示。

    用Delphi封装的Excel导入导出

    用Delphi封装的Excel导入导出,原创

    delphi实现excel和SQLserver数据的导入导出

    本篇文章将详细阐述如何使用Delphi来实现Excel和SQL Server之间的数据导入与导出。 首先,我们需要理解数据导入导出的基本概念。数据导入是指将外部数据源(如Excel文件)的数据转移到另一个系统(如SQL Server...

    delphi操作excel模块,图片,表格,读写删除

    不需Excel也可讀寫xls檔的Delphi控件 用来读取Excel,Access的控件 读写任何单元值 数字型、字符型、布尔型以及错误型。但是你了解日期和时间型单元吗?在Excel中没有这样的单元。Excel是和Delphi一样的方式来存储...

    delphi导入excel至sql

    本教程将详细介绍如何使用Delphi编程环境将Excel数据导入到SQL数据库,特别是在繁体中文环境下操作的方法。Delphi是一款强大的RAD(快速应用开发)工具,它提供了丰富的组件和API,使得与各种数据库进行交互变得简单...

    Delphi 7.0将Excel数据导入到Access数据库中.rar

    Delphi 7.0实现将Excel数据导入到Access数据库中,这个功能我觉得是相当有用的,Access和Excel都是平时大家常用的一种报表格式,Access作为数据库,与报表的联系非常紧密,本示例是将Excel数据导入到Access数据库中...

Global site tag (gtag.js) - Google Analytics