DBGridEh导出的Excel为何不能获取Sheet表名?(50分)

  • 主题发起人 主题发起人 彤心依旧
  • 开始时间 开始时间

彤心依旧

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用的是DBGridEh自己带的导出数据到Excel的方法,结果后来再用ADOConnection的
GetTableNames方法获取导出的Excel时发现无法获取Sheet表名(应该与Excel文件同名),而且使用ADOQuery.SQL.Add('select * from ['+edit1.text+'$]');其中edit1.text为自己手动输入的表名,也无法打开。但是如果把这个Excel表打开,在其中进行插入表之类的操作后,即使把插入的表都删除,只剩下原来的那个表,就可以获取表名了。再用SQL也就可以打开了。总感觉,DBGridEh刚导出的Excel表没有Sheet名,虽然打开Excel可以看见有。
大家有没有遇到过?还是问题在于我?
 
没有人遇到过吗?
 
路过学习 帮你顶
 
共同研究
 
其实很多关于EXECL报表问题可以通过录其宏而后查看其源代码就可以明白了。
 
大哥能把代码给出来吗,我也在学习搞,我自己加载了Ehlib,但照着列子怎么也运行不过,正郁闷中
 
liuguilg:你是让我给代码还是让刀霸给?是给导出到Excel的代码?
 
到处到EXCEL代码:bcb的
void __fastcall TEquipManage::N5Click(TObject *Sender)
{
TDBGridEhExportClass ExpClass;
if(SaveDialog1->Execute())
{
switch(SaveDialog1->FilterIndex)
{
//这一段和Delphi有不同之处,你使用Delhpi就按照Demo来就行
case 1:{ExpClass=__classid(TDBGridEhExportAsXLS);}break;
case 2:{ExpClass=__classid(TDBGridEhExportAsCSV);}break;
case 3:{ExpClass=__classid(TDBGridEhExportAsHTML);}break;
case 4:{ExpClass=__classid(TDBGridEhExportAsRTF);}break;
case 5:{ExpClass=__classid(TDBGridEhExportAsText);}break;
default:
{ExpClass=NULL;}
}
//--------------------
if(FileExists(SaveDialog1->FileName))
{
AnsiString str;
str = SaveDialog1->FileName+"文件已经存在,要替换它吗?";
int i;
i = MessageBox(NULL,str.c_str(),"另存为",MB_OKCANCEL);
if(i == mrOk)
{
//用户确定了替换操作
if(ExpClass!=NULL){
SaveDBGridEhToExportFile(ExpClass,DBGrid1,SaveDialog1->FileName,true);
return;}
}
else //用户取消了替换操作
return;
}
//---------------------- */
if(ExpClass!=NULL){
SaveDBGridEhToExportFile(ExpClass,DBGrid1,SaveDialog1->FileName,true);
return;}
}

}
 
别忘了#include <DBGridEhImpExp.hpp>。Delphi大概是要USE吧
 
没有人回答?分不够可以再加呀
 
因为DBGridEh导出的是一个文本文件,只不过把.txt改为.xls而己,本身就不是Excel文件哪来的Sheet。
 
To ava:
感谢你让我知道了DBGridEh导出的.xls文件原来是这样的。
但是把后缀名改为.xls后就没有Sheet名了吗?那我在Excel文件里看到的Sheet名是什么?如你所说,该如何打开DBGridEh导出的.xls文件呢?
 
不好意思前两天休息,没有上线。现在刚刚上班。我这里有一段导出EXECL的代码。自己写的。应该对你和大家都有所帮助。都是我们公司现在用的。其中包括格式设置:自动1:1。页眉等等... ...


procedure TForm1.BitBtn2Click(Sender: TObject);
var
sdate, str1, str2, str3, str4, str5: string;
m, i, i1, i2: Integer;
Excelid: Variant;
begin
if Iman = 1 then begin
sdate := FormatDateTime('YYYYMMDD', DateTimePicker1.Date);
Excelid := CreateOleObject('Excel.Application');
Excelid.Visible := TRUE;
Excelid.WorkBooks.add;
Excelid.WorkBooks[1].sheets[1].name := 'ABC计划';
Excelid.Caption := 'P类销售报表' + sdate + '';
Excelid.worksheets[1].range['A1:D1'].Merge(TRUE);

Excelid.Cells[1, 1].Value := 'P类商品销售' + sdate + '报表';

Excelid.range['A1,D1'].Merge(TRUE);
Excelid.range['A1'].horizontalalignment := xlcenter; // 居中显示字体

//Excelid.range['A1,D1'].horizontalalignment:=xlleft;
// Excelid.range['A1,D1'].horizontalalignment := xlright;

Excelid.range['A1'].font.size := 18;
Excelid.range['A1'].font.bold := TRUE;

//Excelid.range['A1,D1'].font.name:='隶书';


i := 2;

Excelid.Cells.item[i, 1].Value := '商品编码';
Excelid.Cells.item[i, 2].Value := '商品名称';
Excelid.Cells.item[i, 3].Value := '销售数量';
Excelid.Cells.item[i, 4].Value := '库存数量';



Excelid.Columns[1].ColumnWidth := 12;
Excelid.Columns[2].ColumnWidth := 38;
Excelid.Columns[3].ColumnWidth := 8;
Excelid.Columns[4].ColumnWidth := 8;

Excelid.range['A2:D2'].horizontalalignment := xlcenter;
Excelid.range['A2:D2'].font.size := 9;
Excelid.range['A2:D2'].font.bold := TRUE;

i := 3;

Query1.First;

while not Query1.Eof do begin
Excelid.Cells[i, 1].Value :=
Query1.FieldByName('商品编码').AsString;
Excelid.Cells[i, 2].Value :=
Query1.FieldByName('商品名称').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query1.FieldByName('销售数量').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query1.FieldByName('库存数量').AsString;
Inc(i);
Query1.Next;
end;

str1 := INTTOSTR(i - 1);
Excelid.range['A3:D' + str1 + ''].font.size := 9;
Excelid.range['A2:D' + str1 + ''].Borders.linestyle := 1;

Excelid.range['C2:D' + str1 + ''].horizontalalignment := xlcenter;



Excelid.ActiveSheet.PageSetup.PrintTitleRows := '$1:$2';
Excelid.ActiveSheet.PageSetup.TopMargin := 10;
Excelid.ActiveSheet.PageSetup.BottomMargin := 10;

Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;



// 以下自动调整为一比一比例;

Excelid.ActiveSheet.PageSetup.LeftMargin := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.RightMargin := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.TopMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.BottomMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.5 / 0.035;





Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;

// Excelid.ActiveSheet.PageSetup.PrintQuality := 300;

Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;

// Excelid.ActiveSheet.PageSetup.CenterVertically := false;

Excelid.ActiveSheet.PageSetup.ORIENTATION := xlLandscape;
Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;
Excelid.ActiveSheet.PageSetup.Zoom := FALSE;
Excelid.ActiveSheet.PageSetup.FitToPagesWide := 1;
Excelid.ActiveSheet.PageSetup.FitToPagesTall := 1;



// 以下测试生成第二个报表;
{

Excelid.WorkBooks[1].sheets[2].name := 'ABC__B计划';
Excelid.WorkBooks[1].sheets[2].activate;
Excelid.range['A1:D1'].Merge(TRUE);
Excelid.Cells[1, 1].Value :='P类商品销售' + sdate + '报表';

Excelid.range['A1'].horizontalalignment := xlcenter; // 居中显示字体

//Excelid.range['A1,D1'].horizontalalignment:=xlleft; 靠左显示
// Excelid.range['A1,D1'].horizontalalignment := xlright; 靠右显示

Excelid.range['A1'].font.size := 18;
Excelid.range['A1'].font.bold := TRUE;

//Excelid.range['A1,D1'].font.name:='隶书';


i := 2;

Excelid.Cells.item[i, 1].Value := '商品编码';
Excelid.Cells.item[i, 2].Value := '商品名称';
Excelid.Cells.item[i, 3].Value := '销售数量';
Excelid.Cells.item[i, 4].Value := '库存数量';



Excelid.Columns[1].ColumnWidth := 12;
Excelid.Columns[2].ColumnWidth := 38;
Excelid.Columns[3].ColumnWidth := 8;
Excelid.Columns[4].ColumnWidth := 8;

Excelid.range['A2:D2'].horizontalalignment := xlcenter;
Excelid.range['A2:D2'].font.size := 9;
Excelid.range['A2:D2'].font.bold := TRUE;

i := 3;

Query1.First;

while not Query1.Eof do begin
Excelid.Cells[i, 1].Value :=
Query1.FieldByName('商品编码').AsString;
Excelid.Cells[i, 2].Value :=
Query1.FieldByName('商品名称').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query1.FieldByName('销售数量').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query1.FieldByName('库存数量').AsString;
Inc(i);
Query1.Next;
end;

str1 := INTTOSTR(i - 1);
Excelid.range['A3:D' + str1 + ''].font.size := 9;
Excelid.range['A2:D' + str1 + ''].Borders.linestyle := 1;

Excelid.range['C2:D' + str1 + ''].horizontalalignment := xlcenter;


// Excelid.ActiveSheet.PageSetup.PrintArea :='$A$1:$D$5';



Excelid.ActiveSheet.PageSetup.LeftMargin := 0.15748031496063;
Excelid.ActiveSheet.PageSetup.RightMargin := 0.15748031496063;
Excelid.ActiveSheet.PageSetup.TopMargin := 0.393700787401575;
Excelid.ActiveSheet.PageSetup.BottomMargin := 0.393700787401575;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.511811023622047;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.511811023622047;





Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;

// Excelid.ActiveSheet.PageSetup.PrintQuality := 300;

Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;

// Excelid.ActiveSheet.PageSetup.CenterVertically := false;

Excelid.ActiveSheet.PageSetup.Orientation := xlLandscape;
Excelid.ActiveSheet.PageSetup.Orientation := 1;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;
Excelid.ActiveSheet.PageSetup.Zoom := FALSE;
Excelid.ActiveSheet.PageSetup.FitToPagesWide := 1;
Excelid.ActiveSheet.PageSetup.FitToPagesTall := 1;

//测试生成第二个报表结束;

}

{
Excelid.sheets.add;
Excelid.sheets[3].name := 'ABC__C计划';
Excelid.sheets[3].activate;
}

end
else
Edit1.Text := 'IMAN=' + INTTOSTR(Iman) + '';

if Iman = 2 then begin

m := Query1.RecordCount;
if m >0 begin

Excelid := CreateOleObject('Excel.Application');
Excelid.Visible := TRUE;
Excelid.WorkBooks.add;
Excelid.WorkBooks[1].sheets[1].name := '正常退货商品';
Excelid.Caption := 'SHOP05退货申请';

Excelid.range['A1:M1'].Merge(TRUE);

Excelid.Cells[1, 1].Value :=
'shop05分店退货申请表';

i := 2;

Excelid.Cells[i, 1].Value := '分店名称:05分店';
Excelid.Cells[i, 2].Value := '商品类别:';
Excelid.Cells[i, 4].Value := '分店申请人:';
Excelid.Cells[i, 7].Value := '采购部批准人:';



Excelid.Columns[1].ColumnWidth := 26;
Excelid.Columns[2].ColumnWidth := 5;
Excelid.Columns[3].ColumnWidth := 12;
Excelid.Columns[4].ColumnWidth := 9;
Excelid.Columns[5].ColumnWidth := 3;
Excelid.Columns[6].ColumnWidth := 4;
Excelid.Columns[7].ColumnWidth := 9;
Excelid.Columns[8].ColumnWidth := 6;
Excelid.Columns[9].ColumnWidth := 6;
Excelid.Columns[10].ColumnWidth := 7;
Excelid.Columns[11].ColumnWidth := 22;
Excelid.Columns[12].ColumnWidth := 6;
Excelid.Columns[13].ColumnWidth := 7;


i := 3;

Excelid.Cells[i, 1].Value := '商品名称';
Excelid.Cells[i, 2].Value := '规格';
Excelid.Cells[i, 3].Value := '商品条形码';
Excelid.Cells[i, 4].Value := '商品编码';
Excelid.Cells[i, 5].Value := '单位';
Excelid.Cells[i, 6].Value := '数量';
Excelid.Cells[i, 7].Value := '退货原因';
Excelid.Cells[i, 8].Value := '采购标志';
Excelid.Cells[i, 9].Value := '跟踪标志';
Excelid.Cells[i, 10].Value := '供应商编码';
Excelid.Cells[i, 11].Value := '供应商名称';
Excelid.Cells[i, 12].Value := '商品库存';
Excelid.Cells[i, 13].Value := '处理意见';

Excelid.range['A1:M3'].font.name := '宋体';

Excelid.range['A1'].font.size := 18;

Excelid.range['A2:M3'].font.size := 10;

Excelid.range['A1'].font.bold := TRUE;

Excelid.range['A3:M3'].font.bold := TRUE;

Excelid.range['A1'].horizontalalignment := $FFFFEFF4;
Excelid.range['A1'].VerticalAlignment := $FFFFEFF4;

Excelid.range['A3:M3'].horizontalalignment :=
$FFFFEFF4;
Excelid.range['A3:M3'].VerticalAlignment := $FFFFEFF4;

i := 4;

Query1.First;

while not Query1.Eof do begin

Excelid.Cells[i, 1].Value :=
Query1.FieldByName('商品名称').AsString;
Excelid.Cells[i, 2].Value :=
Query1.FieldByName('规格').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query1.FieldByName('商品条形码').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query1.FieldByName('商品编码').AsString;
Excelid.Cells[i, 5].Value :=
Query1.FieldByName('单位').AsString;
Excelid.Cells[i, 6].Value :=
Query1.FieldByName('数量').AsString;
Excelid.Cells[i, 8].Value :=
Query1.FieldByName('采购标志').AsString;
Excelid.Cells[i, 9].Value :=
Query1.FieldByName('跟踪标志').AsString;
Excelid.Cells[i, 10].Value :=
Query1.FieldByName('供应商编码').AsString;
Excelid.Cells[i, 11].Value :=
Query1.FieldByName('供应商名称').AsString;
Excelid.Cells[i, 12].Value :=
Query1.FieldByName('商品库存').AsString;
Excelid.Cells[i, 13].Value := '''' +
Query1.FieldByName('处理意见').AsString;

Inc(i);

Query1.Next;
end;


str1 := INTTOSTR(i - 1);
Excelid.range['A4:M' + str1 + ''].font.size := 9;
Excelid.range['A3:M' + str1 + ''].Borders.linestyle := 1;


Excelid.ActiveSheet.PageSetup.PrintTitleRows := '$1:$3';
Excelid.ActiveSheet.PageSetup.TopMargin := 10;
Excelid.ActiveSheet.PageSetup.BottomMargin := 10;
Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;
Excelid.ActiveSheet.PageSetup.LeftMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.RightMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.TopMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.BottomMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;
Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.CenterFooter := '共&N页,第&P页';
Excelid.ActiveSheet.PageSetup.ORIENTATION := 2;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;
Excelid.WorkBooks[1].sheets[1].Select;
// Excelid.sheets[1].ColorIndex := 4;
// Excelid.WorkBooks[1].sheets[1].ColorIndex := 4;



if m < 34 then begin
Excelid.ActiveSheet.PageSetup.Zoom := FALSE;
Excelid.ActiveSheet.PageSetup.FitToPagesWide := 1;
Excelid.ActiveSheet.PageSetup.FitToPagesTall := 1;
end;


m := Query3.RecordCount;
if m > 0 then begin
// i :=i + 2;
str4 := INTTOSTR(m);
str3 := ' 注:有' + str4 + '个退货标志为L的商品';
// Excelid.Cells['A:'+str2+''].Value :=str3;
Excelid.Cells[i, 1].Value := str3;
Excelid.Cells[i, 1].font.size := 10;
Excelid.Cells[i, 1].font.bold := TRUE;
Excelid.Cells[i, 1].font.ColorIndex := 3;
// Excelid.Cells[1, '+str2+'].Value :=str3;
end;
end;


//=====================================================================
//生成第二个报表

m := Query3.RecordCount;
if m > 0 then begin

{
Excelid := CreateOleObject('Excel.Application');
Excelid.Visible := TRUE;
Excelid.WorkBooks.add;
Excelid.Caption := 'SHOP05退货申请';
}


Excelid.sheets.add;
Excelid.Visible := TRUE;
Excelid.WorkBooks[1].sheets[1].activate;

Excelid.WorkBooks[1].sheets[1].name := '退货标志为L的商品';
Excelid.Cells[1, 1].Value :=
'shop05分店退货申请表';
Excelid.range['A1:M1'].Merge(TRUE);

i := 2;

Excelid.Cells[i, 1].Value := '分店名称:05分店';
Excelid.Cells[i, 2].Value := '商品类别:';
Excelid.Cells[i, 4].Value := '分店申请人:';
Excelid.Cells[i, 7].Value := '采购部批准人:';



Excelid.Columns[1].ColumnWidth := 26;
Excelid.Columns[2].ColumnWidth := 5;
Excelid.Columns[3].ColumnWidth := 12;
Excelid.Columns[4].ColumnWidth := 9;
Excelid.Columns[5].ColumnWidth := 3;
Excelid.Columns[6].ColumnWidth := 4;
Excelid.Columns[7].ColumnWidth := 9;
Excelid.Columns[8].ColumnWidth := 6;
Excelid.Columns[9].ColumnWidth := 6;
Excelid.Columns[10].ColumnWidth := 7;
Excelid.Columns[11].ColumnWidth := 22;
Excelid.Columns[12].ColumnWidth := 6;
Excelid.Columns[13].ColumnWidth := 7;


i := 3;

Excelid.Cells[i, 1].Value := '商品名称';
Excelid.Cells[i, 2].Value := '规格';
Excelid.Cells[i, 3].Value := '商品条形码';
Excelid.Cells[i, 4].Value := '商品编码';
Excelid.Cells[i, 5].Value := '单位';
Excelid.Cells[i, 6].Value := '数量';
Excelid.Cells[i, 7].Value := '退货原因';
Excelid.Cells[i, 8].Value := '采购标志';
Excelid.Cells[i, 9].Value := '跟踪标志';
Excelid.Cells[i, 10].Value := '供应商编码';
Excelid.Cells[i, 11].Value := '供应商名称';
Excelid.Cells[i, 12].Value := '商品库存';
Excelid.Cells[i, 13].Value := '处理意见';

Excelid.range['A1:M3'].font.name := '宋体';

Excelid.range['A1'].font.size := 18;

Excelid.range['A2:M3'].font.size := 10;

Excelid.range['A1'].font.bold := TRUE;

Excelid.range['A3:M3'].font.bold := TRUE;

Excelid.range['A1'].horizontalalignment := $FFFFEFF4;
Excelid.range['A1'].VerticalAlignment := $FFFFEFF4;

Excelid.range['A3:M3'].horizontalalignment :=
$FFFFEFF4;
Excelid.range['A3:M3'].VerticalAlignment := $FFFFEFF4;

i := 4;

Query3.First;

while not Query3.Eof do begin

Excelid.Cells[i, 1].Value :=
Query3.FieldByName('商品名称').AsString;
Excelid.Cells[i, 2].Value :=
Query3.FieldByName('规格').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query3.FieldByName('商品条形码').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query3.FieldByName('商品编码').AsString;
Excelid.Cells[i, 5].Value :=
Query3.FieldByName('单位').AsString;
Excelid.Cells[i, 6].Value :=
Query3.FieldByName('数量').AsString;
Excelid.Cells[i, 8].Value :=
Query3.FieldByName('采购标志').AsString;
Excelid.Cells[i, 9].Value :=
Query3.FieldByName('跟踪标志').AsString;
Excelid.Cells[i, 10].Value :=
Query3.FieldByName('供应商编码').AsString;
Excelid.Cells[i, 11].Value :=
Query3.FieldByName('供应商名称').AsString;
Excelid.Cells[i, 12].Value :=
Query3.FieldByName('商品库存').AsString;
Excelid.Cells[i, 13].Value := '''' +
Query3.FieldByName('处理意见').AsString;

Inc(i);

Query3.Next;
end;


str1 := INTTOSTR(i - 1);
Excelid.range['A4:M' + str1 + ''].font.size := 9;
Excelid.range['A3:M' + str1 + ''].Borders.linestyle := 1;

Excelid.ActiveSheet.PageSetup.PrintTitleRows := '$1:$3';
Excelid.ActiveSheet.PageSetup.TopMargin := 10;
Excelid.ActiveSheet.PageSetup.BottomMargin := 10;
Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;
Excelid.ActiveSheet.PageSetup.LeftMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.RightMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.TopMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.BottomMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;
Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.CenterFooter := '共&N页,第&P页';
Excelid.ActiveSheet.PageSetup.ORIENTATION := 2;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;

Excelid.WorkBooks[1].sheets[2].activate;


end;


//生成第二个报表结束

end;

end;
 
刀霸写的不错,不过还是用到了OLE,必须安装Excel才行。我感觉DBGridEh的导出方法不错,不依赖环境(本来就是把TXT改了扩展名嘛)。如何才能获取txt改成XLS后的Sheet名呢?一个Excel文件总有Sheet名吧
 
失望啊,郁闷ing!
 
努力学习中
 
如何才能获取txt改成XLS后的Sheet名呢?

用txt改成的xls實質上還是還是文本文件,稱之為“偽xls”
之所以改成xls你用Excel的打開能看到sheet名是因為Excel為你將文件名自動轉換了Sheet名,而這個過程你不知道而已,當你再保存這個文件時,Excel就會問你是不是要轉換成Excel的兼容格式,如果你點是的話,Excel就將這個“偽xls”轉換成真正的Excel文件,這時你用ADO連接Excel就可以找到表名。

而用ADO連接“偽xls”,必須用連接文本文件的方式才可以。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
853
DelphiTeacher的专栏
D
D
回复
0
查看
868
DelphiTeacher的专栏
D
D
回复
0
查看
917
DelphiTeacher的专栏
D
D
回复
0
查看
824
DelphiTeacher的专栏
D
后退
顶部