Проблема выгрузки из ExpressQuantumGrid 3.2.2 в EXCEL

neobi1

Турист
Может кто поборол выгрузку в Unicode в ExpressQuantumGrid 3.2.2 именно в EXCEL. Возникла проблем, никак не могу решить или кто подскажет как можно портировать экспорт из ExpressQuantumGrid 6 или другой какой нибудь версии.

Буду благодарен за любую помощь.
 

Amonrakam

Турист
Сам пользуюсь этим, посмотри, может поможет:
[HIDE]unit GridToXls;

interface

uses Classes, cxGrid, cxTL, cxExport, cxTLExportLink;

function SaveGridToXlsFile(AOwner:TComponent; grid:TcxGrid; defaultDirectory:string) : boolean;
function SaveTreeListToXlsFile(AOwner:TComponent; tree_list:TcxCustomTreeList; defaultDirectory:string) : boolean;

implementation

uses Dialogs, SysUtils, Forms, Windows, Controls, cxGridExportLink, {Variables,} AppMessages;


function AskExcelFileName(AOwner:TComponent; defaultDirectory:string; var fileName:string) : boolean;
var openDlg : TOpenDialog;
begin
openDlg:=Nil;
try
try
fileName:='';

openDlg:=TOpenDialog.Create(AOwner);

openDlg.DefaultExt:='xls';
openDlg.Filter:='Microsoft Excel Workbook (*.xls)|*.xls';
openDlg.Options:=[ofOverwritePrompt,ofHideReadOnly,ofPathMustExist,ofNoReadOnlyReturn,ofEnableSizing];

openDlg.InitialDir:=defaultDirectory;

if openDlg.Execute then
fileName:=openDlg.FileName;
except
end;
finally
if openDlg<>Nil then
try
openDlg.Free;
except
end;
end;

result:=fileName <> '';
end;



function SaveGridToXlsFile(AOwner:TComponent; grid:TcxGrid; defaultDirectory:string) : boolean;
var xlsFileName : string;
begin
result:=false;

if AskExcelFileName(AOwner,defaultDirectory,xlsFileName) then
begin
if FileExists(xlsFileName) then
if AppMsg_Warning_YesNo('Файл '+xlsFileName+' существует, перезаписать?') <> mrYes then
exit;
try
ExportGridToExcel(xlsFileName,grid,false,true,true,'xls');
result:=true;
except
on E:Exception do
AppMsg_Error('Ошибка записи Excel файла '+xlsFileName);
end;
end;
end;


function SaveTreeListToXlsFile(AOwner:TComponent; tree_list:TcxCustomTreeList; defaultDirectory:string) : boolean;
var xlsFileName : string;
begin
result:=false;

if AskExcelFileName(AOwner,defaultDirectory,xlsFileName) then
begin
if FileExists(xlsFileName) then
if AppMsg_Warning_YesNo('Файл '+xlsFileName+' существует, перезаписать?') <> mrYes then
exit;
try
cxExportTLToExcel(xlsFileName,tree_list,true,true,true,'xls');
result:=true;
except
on E:Exception do
AppMsg_Error('Ошибка записи Excel файла '+xlsFileName);
end;
end;
end;

end.
[/HIDE]
 

neobi1

Турист
Код стандартный dxDBGrid1.SaveToXLS(aFileName); и если в гриде есть допустим китайские символы то вот они знаками вопроса.
 

neobi1

Турист
если нужна поддержка xlsx
SaveToXLSX(cxGrid1)
в ExpressQuantumGrid 3.2.2 нет изначально поддержки XLSX у него есть только XLS без поддержки UNICODE
 

SeaMan75

Турист
А грид-то здесь причем? Мне почему-то кажется, что грид данные не хранит. Он их отображает. Значит не у грида надо дергать данные, а из хранилища. У гугла по запросу "быстрый экспорт в Excel" можно найти замечательную бесплатную библиотеку, которая умеет в абсолютно любой формат экселя закинуть любые данные, минуя всякие там OLE и прочее...
 

Ruslan82

Premium
Premium
работаю с импортом и экспортом в эксель каждый день на протяжении 5ти лет. все компоненты, которые пробовал, в той или иной степени работают с глюками, то формат обрезают, то нули в строке спереди, то еще что. ничего лучше и быстрее чем сделать vararray и засунуть его в range нету
 

Kovryga

Турист
Диапазон ячеек:
Sheet.Range['A1:A10'].Value:=str;
Но можно использовать и для одной ячейки:
Sheet.Range['A1'].Value:=str;
 

matthew89

Турист
А не проще обновить ExpressQuantumGrid и юзать без костылей стандартный экспорт из грида. Единственное, мне не нравится, что он медленно работает на больших объемах. В таких случаях юзаю небольшую либу XLSReadWriteII5 и тащу датасет в эксельку и экспорт более 100к строк проходит за секунды
 

white_nigger

Турист
В новом экспорте для ExpressQuantumGrid поддерживается помимо юникода:
Data grouping - with the capability to collapse/expand groups within a worksheet;
Totals and group summaries - with the capability to modify/change formulas;
Excel-style format rules;
Fixed columns.
 

fsasha

Banned
BANNED
В последнем DevExpress (вер. DevExpress VCL 15.2.2) тоже не все так хорошо с экспортом. При выгрузке многоуровневого отчета в xlsx (процедура ExportGridToXLSX) ширина столбцов не выравниватеся автоматически по заголовкам в подуровнях.
 

neobi1

Турист
В последнем DevExpress (вер. DevExpress VCL 15.2.2) тоже не все так хорошо с экспортом. При выгрузке многоуровневого отчета в xlsx (процедура ExportGridToXLSX) ширина столбцов не выравниватеся автоматически по заголовкам в подуровнях.
Очень странно советую скачать другой архив DevExpress и переустановить если не поможет то установить вручную. У меня всё нормально работает и автоматически выравнивается. Свой скинуть не могу так как в моём очень много внесёных изменений.
 
Top