Поиск:

Ответ в темуСоздание новой темы Создание опроса
> from Excel->Paradox 
:(
    Опции темы
Dron84
Дата 12.11.2005, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 11.9.2005
Где: Россия

Репутация: 1
Всего: 1



Как перегнать все данные из Excel(xls) в Paradox(db)
PM MAIL   Вверх
Albinos_x
Дата 13.11.2005, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



ищи
здесь
или
или здесь (только действия наоборот)
Добавлено @ 10:56
ещё в DRKB это есть...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Dron84
Дата 13.11.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 11.9.2005
Где: Россия

Репутация: 1
Всего: 1



Albinos_x
можно по подробнее, только не из db в ексель, а наоборот
PM MAIL   Вверх
Albinos_x
Дата 13.11.2005, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



Цитата(Dron84 @ 13.11.2005, 21:04)
только не из db в ексель, а наоборот


открыть док:
Код

...
OpenDialog1.Filter:='List Microsoft Excel|*.xls';
if OpenDialog1.Execute then
begin
ExcelApplication1:=TExcelApplication.Create(self);
ExcelApplication1.ConnectKind:=ckRunningInstance;
ExcelApplication1.Visible[0]:=true;
ExcelApplication1.AutoConnect:=true;
ExcelApplication1.AutoQuit:=true;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(OpenDialog1.FileName,0));
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkBook.ActiveSheet as ExcelWorksheet);
...

прочитать из ячейки:
Код
...
var MyRange : OleVariant;
     s:String;
...
MyRange:=ExcelWorksheet1.Range['a1',EmptyParam];
S:=MyRange;
// далее заносим в таблицу
Table1.Append;
Table1.FieldByName('Pole1').AsString:=S;
Table1.Post;
...


этого хватит или подробней?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Dron84
Дата 14.11.2005, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 11.9.2005
Где: Россия

Репутация: 1
Всего: 1



Albinos_x
если тебя не затруднит, сделай пожалуйста пример... Please!!!
PM MAIL   Вверх
Albinos_x
Дата 14.11.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



следующий код считывает из ячейки А1 и записывает в ячейку [1,1] Table: TStringGrid
Код
...
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExcelXP, OleServer, Grids;

type
  TForm1 = class(TForm)
    ExcelApplication1: TExcelApplication;
    ExcelWorksheet1: TExcelWorksheet;
    ExcelWorkbook1: TExcelWorkbook;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Table: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var V:OleVariant;
begin
if OpenDialog1.Execute then
   begin
   // запускаем Excel
   ExcelApplication1.AutoConnect:=true;
   // открываем книгу
   ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.OpenXML(OpenDialog1.FileName,EmptyParam));
   // соединяемся с книгой
   ExcelApplication1.ConnectTo(ExcelWorkbook1.Application);
   ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as ExcelWorksheet);
   // делаем видимым Excel
   ExcelApplication1.Visible[0]:=true;
   // считываем ячейку
   v:=ExcelWorksheet1.Range['A1',EmptyParam];
   // записываем в таблицу
   Table.Cells[1,1]:=V;
   // выходим из Excel
   ExcelApplication1.Quit;
   end;

end;
...


в твоём случае надо записывать в БД следовательно:
Код
...
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExcelXP, OleServer, Grids;

type
  TForm1 = class(TForm)
    ExcelApplication1: TExcelApplication;
    ExcelWorksheet1: TExcelWorksheet;
    ExcelWorkbook1: TExcelWorkbook;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Table: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var V:OleVariant;
begin
if OpenDialog1.Execute then
   begin
   // запускаем Excel
   ExcelApplication1.AutoConnect:=true;
   // открываем книгу
   ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.OpenXML(OpenDialog1.FileName,EmptyParam));
   // соединяемся с книгой
   ExcelApplication1.ConnectTo(ExcelWorkbook1.Application);
   ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as ExcelWorksheet);
   // делаем видимым Excel
   ExcelApplication1.Visible[0]:=true;
   // считываем ячейку
   v:=ExcelWorksheet1.Range['A1',EmptyParam];
   // записываем в таблицу
   Table1.Append;                                            //здесь наши изменения. первая команда добавляет запись в БД
   Table1.FieldByName('Pole1').AsString:=S;        //     вторая записывает данные
   Table1.Post;                                                     //    третьей сохраняем изменения

   // выходим из Excel
   ExcelApplication1.Quit;
   end;

end;
...


если количество сток не известно, то :
Код
...
procedure TForm1.Button1Click(Sender: TObject);
var V:OleVariant;
     row, i:integer:
begin
if OpenDialog1.Execute then
   begin
   // запускаем Excel
   ExcelApplication1.AutoConnect:=true;
   // открываем книгу
   ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.OpenXML(OpenDialog1.FileName,EmptyParam));
   // соединяемся с книгой
   ExcelApplication1.ConnectTo(ExcelWorkbook1.Application);
   ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as ExcelWorksheet);
   // делаем видимым Excel
   ExcelApplication1.Visible[0]:=true;
   ExcelWorksheet1.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
   row:=ExcelApplication1.ActiveCell.Row;
  // от 2 т.к. предпологаю, что первая является заголовком
   for i:=2 to row do
      begin
      // считываем ячейку
      v:=ExcelWorksheet1.Range['A'+inttostr(i),EmptyParam];
      // записываем в таблицу
      Table1.Append;                                               //    добавляеь запись в БД
      Table1.FieldByName('Pole1').AsString:=S;           //     записываем данные
      Table1.Post;                                                     //    сохраняем изменения
      // чтоб приложение не "повисало"
      Application.ProgresMessages;
      end;
   // выходим из Excel
   ExcelApplication1.Quit;
   end;

end;
...


последний код прочитает и занесёт в БД из первого слобеца Excel


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.