Текущий архив: 2004.04.04;
Скачать: CL | DM;
Вниз
Таблица Exel и БД: экспорт данных из ячеек exel в поля БД? Найти похожие ветки
← →
В л а д и м и р © (2004-03-06 18:36) [0]Уважаемые мастера, подскажите пожалуйста, каким образом можно не вводя вручную данные, содержащиеся в Exel, экспортировать их в соответствующие поля таблицы БД.
Таблица exel содержит отчет о доходах и расходах на определенную дату. Если для упрощения предположить, что данная таблица exel содержит в своих ячейках 3 записи (06.03.2004 -,дата; 1000 - доход от реализации продукта А; 500 - издержки от реализации продукта А), то как можно осуществить доступ к этим данным, прочитать их и записать в соответствующие поля БД?
← →
YurikGl © (2004-03-06 19:51) [1]Самый простой вариант:
Обращаешься по очереди к каждой строке документа и добавляешь ее в БД. Вопрос доступа к документу Excel и считывания информации из ячеек не раз обсуждался на форуме.
Второй вариант. Можно попробовать выделить записи в excel потом copy/paste в таблицу БД. Но, скорее всего, не прокатит.
← →
Zacho © (2004-03-06 20:05) [2]Еще вариант: прямо из Excell можно сохранить таблицу в dbf
← →
Dr.Alex © (2004-03-07 01:21) [3]type
TExcell = class(TForm)
Button1: TButton;
XLApp: TExcelApplication;
ExcelWorksheet: TExcelWorksheet;
ExcelWorkbook: TExcelWorkbook;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Excell: TExcell;
implementation
uses Unit4, Unit2, QRepor, Unit1, Unit3, Unit5;
{$R *.dfm}
procedure TExcell.Button1Click(Sender: TObject);
var
WorkBk : _WorkBook;
WorkSheet : _WorkSheet;
R, X, Y,a,b : Integer;
IIndex : OleVariant;
RangeMatrix : Variant;
NomFich : WideString;
s:string;
begin
dminternet.TPrice.Edit;
for b:=1 to dminternet.TPrice.RecordCount do dminternet.TPrice.Delete;
NomFich := "G:\Work\MY DOckумент\Прайс\1.xls";
IIndex := 1;
XLApp.Connect;
// Открываем файл Excel
XLApp.WorkBooks.Open(NomFich,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,0);
WorkBk := XLApp.WorkBooks.Item[IIndex];
WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
// Чтобы знать размер листа (WorkSheet), т.е. количество строк и количество
// столбцов, мы активируем его последнюю непустую ячейку
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
// Получаем значение последней строки
X := XLApp.ActiveCell.Row;
// Получаем значение последней колонки
Y := XLApp.ActiveCell.Column;
// Определяем количество колонок в TStringGrid
//GenericStringGrid.ColCount := Y;
// Сопоставляем матрицу WorkSheet с нашей Delphi матрицей
RangeMatrix := XLApp.Range["A1",XLApp.Cells.Item[X,Y]].Value;
// Выходим из Excel и отсоединяемся от сервера
XLApp.Quit;
XLApp.Disconnect;
// Определяем цикл для заполнения
for R := 1 to X do begin
dminternet.TPrice.Append;\\ dminternet.TPrice - это моя база вставте путь к своей и все будет работать
dminternet.TPricePPos.Value:=R;
dminternet.TPricePLocator.Value:=Copy(RangeMatrix[R,1],2,Length(RangeMatrix[R,1]));
dminternet.TPricePName.Value:=Copy(RangeMatrix[R,2],2,Length(RangeMatrix[R,2]));// Ну и так далее
end;
end;
end.
Страницы: 1 вся ветка
Текущий архив: 2004.04.04;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.022 c