Delphi Delphi считывает данные из Excel и сохраняет их в базе данных

  • Автор темы Автор темы Lomanu4
  • Дата начала Дата начала

Lomanu4

Команда форума
Администратор
Ofline
Код:
{Excel to Delphi to SqlServer}
unit ExcelLoad;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ComObj, dxSkinsCore, dxSkinBlack, dxSkinBlue,
  dxSkinCaramel, dxSkinCoffee, dxSkinDarkSide, dxSkinGlassOceans,
  dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
  dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black,
  dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
  dxSkinOffice2007Silver, dxSkinPumpkin, dxSkinSilver, dxSkinStardust,
  dxSkinSummer2008, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinXmas2008Blue, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxGrid, cxTL, cxTextEdit, cxInplaceContainer, Grids,
  ADODB;

type
  TForm1 = class(TForm)
    OpenDialog: TOpenDialog;
    btn1: TButton;
    cxgrdbtblvwGrid1DBTableView1: TcxGridDBTableView;
    cxgrdlvlGrid1Level1: TcxGridLevel;
    cxgrd1: TcxGrid;
    cxgrdbclmnGrid1DBTableView1Column1: TcxGridDBColumn;
    cxgrdbclmnGrid1DBTableView1Column2: TcxGridDBColumn;
    lst1: TcxTreeList;
    cxtrlstclmnlst1cxTreeListColumn1: TcxTreeListColumn;
    cxtrlstclmnlst1cxTreeListColumn2: TcxTreeListColumn;
    strngrd1: TStringGrid;
    con1: TADOConnection;
    qry1: TADOQuery;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var ExcelApp:Variant;
    n1:string;
    i,j:integer;
    FileName:string;
    OpenDialog:TOpenDialog;
    flag:boolean;
begin
  OpenDialog:=TOpenDialog.Create(nil);
  OpenDialog.Filter:='Файл Excel | * .xls';
    if not OpenDialog.Execute then begin
      OpenDialog.Free;
      exit;
    end;
    FileName:=OpenDialog.FileName;
    ExcelApp:=CreateOleObject('Excel.Application');
    ExcelApp.visible:=False;
    ExcelApp.workbooks.open(FileName);

 
// Адаптивная ширина
    ExcelApp.worksheets[1].Cells.EntireColumn.AutoFit;

    //ShowMessage(ExcelApp.worksheets[1].cells[1,1].text);
    for  i:=1 to 4 do
    begin
      for j:=1 to 2 do
      begin
      if ExcelApp.worksheets[1].cells[i,1].text <>'' then
      strngrd1.Cells[j-1,i-1]:=ExcelApp.worksheets[1].cells[i,j].text;
      end;

     end;
    for i:=0 to 3 do
    begin
      with qry1 do
      begin
        Close;
        SQL.Clear;
        SQL.Text:='insert into excel(name,pwd) values(:name,:pwd)';
        Parameters.ParamByName('name').Value:=strngrd1.Cells[0,i+1];
        Parameters.ParamByName('pwd').Value:=strngrd1.Cells[1,i+1];
        ExecSQL;
      end;
    end;
end;
end.

Оператор таблицы базы данных:
Код:
create table excel(
 id int identity(1,1) primary key,
 name nchar(30),
 pwd nchar(3)
 );
 
Назад
Сверху Снизу