|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Экспорт в Excel поля типа Memo
Прошу вашей помощи, при при экспорте всех полей появляется ошибка "Недостаточно памяти для завершения операции", но как только в экспорт не попадает поле "Описание" (тип Memo), то все проходит на ура. Очень нужно помогите кто сможет.
Таблица Access. вот код Экспорта: Код:
procedure TExportExl.ExportToExl; var XLApp,Sheet,Colum:Variant; index,i, m, n:Integer; begin XLApp:= CreateOleObject('Excel.Application'); XLApp.Visible:=cbResult.Checked; XLApp.Workbooks.Add(-4167); XLApp.Workbooks[1].WorkSheets[1].Name:='Отчет'; Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Columns; for n:=0 to export_column.Count-1 do begin if export_column.Items.Strings[n]='Название книги' then Colum.Columns[n+1].ColumnWidth:=50; if export_column.Items.Strings[n]='Автор' then Colum.Columns[n+1].ColumnWidth:=25; if export_column.Items.Strings[n]='Издатель' then Colum.Columns[n+1].ColumnWidth:=30; if export_column.Items.Strings[n]='Год' then Colum.Columns[n+1].ColumnWidth:=10; if export_column.Items.Strings[n]='Обьем' then Colum.Columns[n+1].ColumnWidth:=10; if export_column.Items.Strings[n]='Примечание' then Colum.Columns[n+1].ColumnWidth:=30; if export_column.Items.Strings[n]='Должник' then Colum.Columns[n+1].ColumnWidth:=14; if export_column.Items.Strings[n]='Описание' then Colum.Columns[n+1].ColumnWidth:=50; end; Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Rows; Colum.Rows[2].Font.Bold:=true; Colum.Rows[2].HorizontalAlignment:=3; XLApp.Range['A3'].Select; XLApp.ActiveWindow.FreezePanes:=True; Colum.Rows[1].Font.Bold:=true; Colum.Rows[1].Font.Color:=clBlue; Colum.Rows[1].Font.Size:=12; Sheet:=XLApp.Workbooks[1].WorkSheets['Отчет']; Sheet.Cells[1,2]:=main.Caption; for m:=0 to Export_column.Count-1 do begin Sheet.Cells[2,m+1]:=Export_column.Items.Strings[m]; end; index:=3; main.Table1.First; ProgressBar.Max:=main.Table1.RecordCount-1; ProgressBar.Position := 0; ProgressBar.Step := 1; for i:=0 to main.Table1.RecordCount-1 do begin for n:=0 to export_column.Count-1 do begin if export_column.Items.Strings[n]='Название книги' then Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[1].AsString; if export_column.Items.Strings[n]='Автор' then begin Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[2].AsString; Sheet.Cells[index,n+1].HorizontalAlignment:=3; end; if export_column.Items.Strings[n]='Издатель' then begin Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[3].AsString; Sheet.Cells[index,n+1].HorizontalAlignment:=3; end; if export_column.Items.Strings[n]='Год' then Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[4].AsString; if export_column.Items.Strings[n]='Объем' then Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[5].AsString; if export_column.Items.Strings[n]='Примечание' then Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[6].AsString; if export_column.Items.Strings[n]='Должник' then begin Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[7].AsString; Sheet.Cells[index,n+1].HorizontalAlignment:=3; end; if export_column.Items.Strings[n]='Описание' then Sheet.Cells[index,n+1]:=main.Table1.Fields.Fields[8].AsString; end; Inc(index); ExportExl.Update; Main.Update; ProgressBar.StepIt; main.Table1.Next; end; XLApp.DisplayAlerts := false; XLApp.ActiveWorkbook.SaveAs(FileNameEdit1.FileName); XLApp.Quit; XLApp:= UnAssigned; main.Table1.First; Showmessage('Экспорт завершен'); end; |