procedure TForm1.Button1Click(Sender: TObject);
var
Excel,WorkBook:OleVariant;
begin
if savedialog1.Execute then
begin
Excel := CreateOleObject('Excel.Application');
WorkBook :=Excel.WorkBooks.open(savedialog1.FileName);
WorkBook.activeSheet.Range['A1:B1'].Merge;
WorkBook.activeSheet.SaveAS(savedialog1.FileName);
end;
end;使用dbgrideh导出到excel的excel表,用以上delphi程序不能合并单元格?但手工打开excel表就能合并;
以上delphi程序又能合并普通自制的excel表单元格,为什么?
另外,用delphi程序合并单元格后,怎样不用提示可以自动保存excel表?
var
Excel,WorkBook:OleVariant;
begin
if savedialog1.Execute then
begin
Excel := CreateOleObject('Excel.Application');
WorkBook :=Excel.WorkBooks.open(savedialog1.FileName);
WorkBook.activeSheet.Range['A1:B1'].Merge;
WorkBook.activeSheet.SaveAS(savedialog1.FileName);
end;
end;使用dbgrideh导出到excel的excel表,用以上delphi程序不能合并单元格?但手工打开excel表就能合并;
以上delphi程序又能合并普通自制的excel表单元格,为什么?
另外,用delphi程序合并单元格后,怎样不用提示可以自动保存excel表?
WorkBook := Unassigned;
if not VarIsEmpty(Excel) then
Excel.Quit;
Excel:= Unassigned;
procedure TForm1.Button1Click(Sender: TObject);
var
Excel,WorkBook:OleVariant;
begin
if savedialog1.Execute then
begin
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.Add;
WorkBook:=Excel.WorkBooks.open(savedialog1.FileName);
WorkBook.activeSheet.Range['D2:E2'].Merge;
Excel.DisplayAlerts:=False;
Excel.ActiveWorkBook.SaveAs('c:\a.xls');
Excel.WorkBooks.Close;
end;
end;
除非去掉自动保存Excel.DisplayAlerts := False; 这一句,
否则不能保存由dbgrideh导出的excel表合并单元格后的表
就算用Excel.DisplayAlerts := False;这一句,也会有‘选定区域包含多重数值。合并到一个单元格后只能保留最左上角的数据’
这个提示又怎样去掉?
是不是dbgrideh导出的excel表的版本和机器装的版本不一样啊?
到底怎样才能合并单元格且自动保存,
被合并的单元格中有数据,Excel会提示。
这个可能是dbgrideh导出的Excel表中有些单元格表面没有数据,其实有空格或其他字符所致