Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Как сохранить БД через SaveDialog в формате Word и Excel?   Найти похожие ветки 

 
ev ©   (2004-04-09 14:18) [0]

Как сохранить БД через SaveDialog в формате Word и Excel?


 
ev ©   (2004-04-09 14:18) [0]

Как сохранить БД через SaveDialog в формате Word и Excel?


 
Fay ©   (2004-04-09 14:20) [1]

В общем случае - никак. Уточни вопрос.


 
Fay ©   (2004-04-09 14:20) [1]

В общем случае - никак. Уточни вопрос.


 
bushmen ©   (2004-04-09 14:20) [2]

Что значит "Сохранить БД" ? Сохранить выборку данных из БД или структуру?


 
bushmen ©   (2004-04-09 14:20) [2]

Что значит "Сохранить БД" ? Сохранить выборку данных из БД или структуру?


 
ev ©   (2004-04-09 14:24) [3]

Сохранить выборку по SQL запросу.


 
ev ©   (2004-04-09 14:24) [3]

Сохранить выборку по SQL запросу.


 
Карелин Артем ©   (2004-04-09 14:26) [4]

Ну как. На тему экспорта полно статей написано. Экспортируешь и вызываешь методу SaveAs. А можешь на Torry поискать компонентры для экспорта.


 
Карелин Артем ©   (2004-04-09 14:26) [4]

Ну как. На тему экспорта полно статей написано. Экспортируешь и вызываешь методу SaveAs. А можешь на Torry поискать компонентры для экспорта.


 
bushmen ©   (2004-04-09 14:27) [5]

Создаешь OLEObject, который привязан к Excel или Word и, например, в цикле кидаешь туда значения.


 
bushmen ©   (2004-04-09 14:27) [5]

Создаешь OLEObject, который привязан к Excel или Word и, например, в цикле кидаешь туда значения.


 
ev ©   (2004-04-09 14:27) [6]

А можно ссылку?


 
ev ©   (2004-04-09 14:27) [6]

А можно ссылку?


 
Карелин Артем ©   (2004-04-09 14:29) [7]

http://go.mail.ru/?qs=1&lfilter=yes&words=Delphi+Excel+%FD%EA%F1%EF%EE%F0%F2&change=2


 
Карелин Артем ©   (2004-04-09 14:29) [7]

http://go.mail.ru/?qs=1&lfilter=yes&words=Delphi+Excel+%FD%EA%F1%EF%EE%F0%F2&change=2


 
Fay ©   (2004-04-09 14:29) [8]

Я тебе свой модуль для Ёxcel-я закинул. Для Word-а под рукой нету.


 
Fay ©   (2004-04-09 14:29) [8]

Я тебе свой модуль для Ёxcel-я закинул. Для Word-а под рукой нету.


 
Fay ©   (2004-04-09 14:30) [9]

2Карелин Артем ©
8)


 
Fay ©   (2004-04-09 14:30) [9]

2Карелин Артем ©
8)


 
Карелин Артем ©   (2004-04-09 14:40) [10]

Fay ©   (09.04.04 14:30) [9]
Такой вот я.

ev ©
Чтобы не быть жлобом, пишу свой код экспорта. Сохранить думаю найдешь как самостоятельно.
var Excel,WorkBook,Sheet,Area:variant;
   i:integer;
begin
try
 Excel := CreateOleObject("Excel.Application");
 if Excel.WorkBooks.count=0 then WorkBook := Excel.WorkBooks.Add else WorkBook := Excel.WorkBooks[1];
 if WorkBook.WorkSheets.count=0 then Sheet := WorkBook.WorkSheets.Add else Sheet := WorkBook.WorkSheets[1];
except
 ShowMessage("Невозможно запустить MS Excel");
 exit;
end;
i:=MainData.Grid2ExcelEx(Sheet,3,1,DBGridEh1,True);
Sheet.Cells.Columns.AutoFit;
Sheet.Cells[i+1,1].Value:="Всего";
Sheet.Cells[i+1,3].FormulaR1C1:="=SUM(R[-"+IntToStr(i-3)+"]C:R[-1]C)";
Area:=Sheet.UsedRange;
Sheet.Cells[1,1].Value:=MainData.GetTitle1("");
Sheet.Cells[2,1].Value:=MainData.Get1DateTitle(Self.Caption,Now);
(DateEdit1.Date);
Area.Borders.LineStyle :=1;
Area.BorderAround(1,3);
Area.HorizontalAlignment:=-4131;
Sheet.UsedRange.NumberFormat:="@";
Excel.Visible:=true;
Excel.ScreenUpdating:=true;
Sheet:=Unassigned;
WorkBook:=Unassigned;
Excel:=Unassigned;

*****
function TMainData.Grid2Excel(const ExcelDoc: variant; const row,
 col: integer;const Grid: TDBGridEh):integer;
var x,y:integer;
   bm:TBookmark;
   BeginCol, BeginRow, i, j : integer;
   RowCount, ColCount : integer;
   Cell1, Cell2,ArrayData:Variant;
begin
// if Grid.DataSource.DataSet.IsEmpty then exit;
Screen.Cursor:=crHourGlass;
Application.ProcessMessages;
y:=row;
Grid.DataSource.DataSet.DisableControls;
bm:=Grid.DataSource.DataSet.GetBookmark;
Grid.DataSource.DataSet.First;
for x:=0 to Grid.Columns.Count-1 do
 begin
  ExcelDoc.Cells[y,x+col].Value:=Grid.Columns[x].Title.Caption;
  ExcelDoc.Cells[y,x+col].Font.Bold:=true;
 end;
Grid.DataSource.DataSet.Last;
Grid.DataSource.DataSet.First;
RowCount:=Grid.DataSource.DataSet.RecordCount;
// if RowCount>16000 then RowCount:=16000;
ColCount:=Grid.Columns.Count;
ArrayData := VarArrayCreate([1, RowCount+1, 1, ColCount], varVariant);
i:=1;
while not(Grid.DataSource.DataSet.Eof or (Grid.DataSource.DataSet.RecNo>65000)) do
 begin
  for J := 1 to ColCount do
   begin
    //    if not(Grid.Columns[j-1].Field.IsNull) then
    ArrayData[I, J] := Grid.Columns[j-1].Field.Text;
   end;
  inc(i);
  RowCount:=i;
  Grid.DataSource.DataSet.Next;
 end;
Cell1 := ExcelDoc.Cells[Row+1, Col];
 // Правая нижняя ячейка области, в которую будем выводить данные
Cell2 := ExcelDoc.Cells[Row  + RowCount-1, Col +ColCount - 1];
ExcelDoc.Range[Cell1, Cell2].NumberFormat:="0";
ExcelDoc.Range[Cell1, Cell2].Value := ArrayData;
Grid.DataSource.DataSet.GotoBookmark(bm);
Grid.DataSource.DataSet.FreeBookmark(bm);
Grid.DataSource.DataSet.EnableControls;
// ExcelDoc.UsedRange.NumberFormat:="@";
Screen.Cursor:=crDefault;
Result:=RowCount-1;
if Result<1 then Result:=1;
end;


 
Карелин Артем ©   (2004-04-09 14:40) [10]

Fay ©   (09.04.04 14:30) [9]
Такой вот я.

ev ©
Чтобы не быть жлобом, пишу свой код экспорта. Сохранить думаю найдешь как самостоятельно.
var Excel,WorkBook,Sheet,Area:variant;
   i:integer;
begin
try
 Excel := CreateOleObject("Excel.Application");
 if Excel.WorkBooks.count=0 then WorkBook := Excel.WorkBooks.Add else WorkBook := Excel.WorkBooks[1];
 if WorkBook.WorkSheets.count=0 then Sheet := WorkBook.WorkSheets.Add else Sheet := WorkBook.WorkSheets[1];
except
 ShowMessage("Невозможно запустить MS Excel");
 exit;
end;
i:=MainData.Grid2ExcelEx(Sheet,3,1,DBGridEh1,True);
Sheet.Cells.Columns.AutoFit;
Sheet.Cells[i+1,1].Value:="Всего";
Sheet.Cells[i+1,3].FormulaR1C1:="=SUM(R[-"+IntToStr(i-3)+"]C:R[-1]C)";
Area:=Sheet.UsedRange;
Sheet.Cells[1,1].Value:=MainData.GetTitle1("");
Sheet.Cells[2,1].Value:=MainData.Get1DateTitle(Self.Caption,Now);
(DateEdit1.Date);
Area.Borders.LineStyle :=1;
Area.BorderAround(1,3);
Area.HorizontalAlignment:=-4131;
Sheet.UsedRange.NumberFormat:="@";
Excel.Visible:=true;
Excel.ScreenUpdating:=true;
Sheet:=Unassigned;
WorkBook:=Unassigned;
Excel:=Unassigned;

*****
function TMainData.Grid2Excel(const ExcelDoc: variant; const row,
 col: integer;const Grid: TDBGridEh):integer;
var x,y:integer;
   bm:TBookmark;
   BeginCol, BeginRow, i, j : integer;
   RowCount, ColCount : integer;
   Cell1, Cell2,ArrayData:Variant;
begin
// if Grid.DataSource.DataSet.IsEmpty then exit;
Screen.Cursor:=crHourGlass;
Application.ProcessMessages;
y:=row;
Grid.DataSource.DataSet.DisableControls;
bm:=Grid.DataSource.DataSet.GetBookmark;
Grid.DataSource.DataSet.First;
for x:=0 to Grid.Columns.Count-1 do
 begin
  ExcelDoc.Cells[y,x+col].Value:=Grid.Columns[x].Title.Caption;
  ExcelDoc.Cells[y,x+col].Font.Bold:=true;
 end;
Grid.DataSource.DataSet.Last;
Grid.DataSource.DataSet.First;
RowCount:=Grid.DataSource.DataSet.RecordCount;
// if RowCount>16000 then RowCount:=16000;
ColCount:=Grid.Columns.Count;
ArrayData := VarArrayCreate([1, RowCount+1, 1, ColCount], varVariant);
i:=1;
while not(Grid.DataSource.DataSet.Eof or (Grid.DataSource.DataSet.RecNo>65000)) do
 begin
  for J := 1 to ColCount do
   begin
    //    if not(Grid.Columns[j-1].Field.IsNull) then
    ArrayData[I, J] := Grid.Columns[j-1].Field.Text;
   end;
  inc(i);
  RowCount:=i;
  Grid.DataSource.DataSet.Next;
 end;
Cell1 := ExcelDoc.Cells[Row+1, Col];
 // Правая нижняя ячейка области, в которую будем выводить данные
Cell2 := ExcelDoc.Cells[Row  + RowCount-1, Col +ColCount - 1];
ExcelDoc.Range[Cell1, Cell2].NumberFormat:="0";
ExcelDoc.Range[Cell1, Cell2].Value := ArrayData;
Grid.DataSource.DataSet.GotoBookmark(bm);
Grid.DataSource.DataSet.FreeBookmark(bm);
Grid.DataSource.DataSet.EnableControls;
// ExcelDoc.UsedRange.NumberFormat:="@";
Screen.Cursor:=crDefault;
Result:=RowCount-1;
if Result<1 then Result:=1;
end;



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.041 c
1-1082920519
TALLA
2004-04-25 23:15
2004.05.09
переделка с asm на Delphi :(


1-1082103462
scorpi
2004-04-16 12:17
2004.05.09
XP-дизайн.....


1-1082471791
UnDISCOvery
2004-04-20 18:36
2004.05.09
ActionToolBar. Проблемы с отрисовкой. Как бороть ???


3-1081853258
Kirilll
2004-04-13 14:47
2004.05.09
Delphi+Clarion?


3-1081433101
ShaG
2004-04-08 18:05
2004.05.09
Excel в DataSet





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский