![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
из StringGrid в Excel [D7, MySQL]
X_ksandr_X © (2007-04-16 09:33:00)Всем привет.
Люди добрые подскажите плиз. У меня есть Excel файл, который я подгружаю в StrinGrid с этим проблемм нет. Мне нужно сделать так чтоб загруженные данные я мог редоктировать и по нажатии на кнопку они изменялись в данном файле Excel.
Заранее спасибо.
Jan1 (2007-04-16 12:19:00) [1]
> Карелин Артем © (16.04.07 12:18) [10]
Ты 100 раз прав! Я с утрировал, но может автору это и надо? Может он велик себе придумал? :)
Карелин Артем (2007-04-16 12:18:00) [2]
> Jan1 (16.04.07 12:00) [9]
Эта связка хороша только в простейших случаях, когда данные в виде примитивной таблицы представлены.
У меня например есть множество шаблонов, в которых надо заполнять неизвестно где расположенные именованные области, обьединенные ячейки, разбросанные по всему листу. Я как-то плохо представляю как заполнить например шаблон полиса ОСАГО через SQL. А так все хорошо заполняется несколькими коротким кодом.
Jan1 (2007-04-16 12:00:00) [3]
> Уверен? )))
DBGrid+ADODataSet+ADOConnection и нет даже строчки кода :)
Карелин Артем (2007-04-16 11:59:00) [4]
> Jan1 (16.04.07 11:52) [7]
Уверен? )))
Jan1 (2007-04-16 11:52:00) [5]
> К сожалению я не использую пока сдесь БД и SQL. Мне пока
> всего лишь навсего нужно переместить данные в Excel.
а зря. на порядок меньше кода бы было.
Карелин Артем (2007-04-16 11:37:00) [6]
function TMainData.StringGrid2Excel(const ExcelDoc: variant; const row,
col: integer; const Grid: TStringGrid): integer;
var
y: integer;
i, j: integer;
RowCount, ColCount: integer;
Cell1, Cell2, ArrayData: Variant;
begin
Screen.Cursor := crHourGlass;
Application.ProcessMessages;
y := row;
RowCount := Grid.RowCount;
ColCount := Grid.ColCount;
ArrayData := VarArrayCreate([0, RowCount + 1, 0, ColCount], varVariant);
for i := 0 to RowCount do
for J := 0 to ColCount do
ArrayData[I, J] := Grid.Cells[i, j];
Cell1 := ExcelDoc.Cells[Row + 1, Col];
Cell2 := ExcelDoc.Cells[Row + RowCount - 2, Col + ColCount - 2];
ExcelDoc.Range[Cell1, Cell2].NumberFormat := '0';
ExcelDoc.Range[Cell1, Cell2].Value := ArrayData;
Screen.Cursor := crDefault;
Result := RowCount - 1;
end;
X_ksandr_X (2007-04-16 10:57:00) [7]Ладно всем спасибо за советы.
Попробуем.
Desdechado (2007-04-16 10:53:00) [8]Имхо, проще использовать книжку экселя как набор данных, тогда не надо ничего перемещать.
Jan1 (2007-04-16 10:37:00) [9]http://delphikingdom.ru/asp/itemq.asp?mode=1&itemid=2
X_ksandr_X (2007-04-16 10:31:00) [10]К сожалению я не использую пока сдесь БД и SQL. Мне пока всего лишь навсего нужно переместить данные в Excel.
Jan1 (2007-04-16 10:18:00) [11]
> У меня есть Excel файл, который я подгружаю в StrinGrid
> с этим проблемм нет
чем ADO и DBGrid не устроил?