Mudar nome dos titulos da planilha
Tenho uma rotina que gera uma planilha baseada no está em um DBGrid. Quando eu carregava do DBGrid, dava erro nos campos memos. Passei a carregar direto do DataSet e resolveu o poblema do campo memo, mas está carregando o nome original dos campos da tabela e preciso carregar o nome que está no DBGrid(Somente os nomes das colunas no Excel).
Estava assim antes, mas não carregava o Memo, mas trazia os nomes dos títulos
ExcelExport.DBGridToExcel(AGridExcel);
Assim agora(abaixo) carrega os Memos, mas não consigo carregar os nomes dos títulos das colunas, ele carrega o nome que está no banco de dados.
ExcelExport.DataSetToExcel(AGridExcel.DataSource.DataSet);
Pjava
Curtidas 0
Respostas
Pjava
03/08/2011
O que acontece é o seguinte. Em realidade ele está trazendo os campos com os nomes certos. O que está acontecendo é que ele está trazendo todos os campos do DataSet, logo os que não estão mapeados, estão aparecendo com esses nomes. Mas o problema é que ele só pode mostrar os campos selecionados(17 no total), aí o usário marca uns checkbox entre os 17 que ele quer mostrar. Não estou conseguindo trazer somente os selecionados na planilha. No Grid ele vem, mas na planilha não. Abnaixo os código referente a eles.
try AGridExcel := TDBGrid.Create(self); AGridExcel.DataSource:=Agrid.DataSource; for i:=0 to Agrid.Columns.Count-1 do begin AgridExcel.Columns.Add; AGridExcel.Columns[i].Assign(Agrid.Columns[i]); end; // Supondo que já tem o grid com as columns.. ClbColunas.Clear; for aCountCol := 0 to AGridExcel.Columns.count -1 do ClbColunas.Items.Add(AGridExcel.Columns[aCountCol].Title.Caption+' - '+ AGridExcel.Columns[aCountCol].FieldName); self.Height := PnlButtons.Height+(AGridExcel.Columns.count * clbColunas.ItemHeight)+PnlTodos.Height+30; finally // FreeAndNil(aGridExcel); end; var ExcelExport: TOLEExcel; i: integer; begin result := TRUE; Screen.Cursor := crHourGlass; ExcelExport := TOLEExcel.Create(Application); try ExcelExport.IgnoreFont := false; ExcelExport.TitleFont.Style := ExcelExport.TitleFont.Style + [fsBold]; ExcelExport.CreateExcelInstance; ExcelExport.DataSetToExcel(AGridExcel.DataSource.DataSet); //ExcelExport.DBGridToExcel(AGridExcel); ExcelExport.Visible := True; finally FreeAndNil(ExcelExport); Screen.Cursor := crDefault; end; end;
GOSTEI 0