拜托:如何根据数据库内容生成一个EXCEL文件!(100分)

  • 主题发起人 主题发起人 geng7758
  • 开始时间 开始时间
G

geng7758

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各大侠:如何不启动EXCEL,根据数据库内容生成一个EXCEL文件,
而且写程序的电脑上没装EXCEL?
 
难道一定要装吗?我只要生成这种格式的文件就行.
 
是不是需要Excel的对象库
 
用XLSREDWRITER 不用装EXCEL
HTTP://GO.163.COM/~HUA8HUA
还可以用XLSFILE不用装EXCEL
HTTP://WWW。TORRY。NET
 
delphi 的 f1book(是。OCX) 可以生成 excel.5 的文件
 
先谢谢arm!
谁能不用第三方控件,若能解决,再送200分!
还有个问题:怎么检测打引机没连接好?
 
Microsoft可以解决!其他人不可能在不知道Excel文件结构的情况解决。

随便问一句,如果此机器没有装Excel,那么生成Excel文件来作什么用?!
 
没装EXCEL是为了携带数据到别处使
 
哈哈,简单。有例程。
请参看ExpressQuantumGrid源代码:(我抄一段)
procedure TdxDBGridExportExcel.DoWriteHeader;
var
i, j, k: Integer;
S: string;
begin
with Grid do
begin
// Draw Bands
if ShowBands then
begin
for i := 0 to GroupColumnCount - 1 do
begin
XLSBlank[2] := TotalCount;
XLSBlank[3] := i;
Stream.WriteBuffer(XLSBlank, SizeOf(XLSBlank));
end;
for j := 0 to VisColCount - 1 do
begin
XLSBlank[2] := TotalCount;
XLSBlank[3] := j + GroupColumnCount;
Stream.WriteBuffer(XLSBlank, SizeOf(XLSBlank));
end;
k := 0;
for i := 0 to GetBandCount - 1 do
begin
S := GetBandText(i);
XLSLAbel[1] := Length(S) + 8;
XLSLabel[2] := TotalCount;
XLSLabel[3] := k + GroupColumnCount;
XLSLabel[4] := $1A;
XLSLabel[5] := Length(S);
Stream.WriteBuffer(XLSLabel, SizeOf(XLSLabel));
Stream.WriteBuffer(Pointer(S)^, Length(S));
for j := 0 to GetHeaderRowCount(i) - 1 do
k := k + GetHeaderColCount(i,j);
end;
Inc(TotalCount);
end;
// Draw Heders
if ShowHeader then
begin
for i := 0 to GroupColumnCount - 1 do
begin
XLSBlank[2] := TotalCount;
XLSBlank[3] := i;
Stream.WriteBuffer(XLSBlank, SizeOf(XLSBlank));
end;
for i := 0 to VisColCount - 1 do
begin
// S := GetHeaderText(VisColIndexes);
S := Columns[VisColIndexes].Caption;
XLSLAbel[1] := Length(S) + 8;
XLSLabel[2] := TotalCount;
XLSLabel[3] := i + GroupColumnCount;
XLSLabel[4] := $16;
XLSLabel[5] := Length(S);
Stream.WriteBuffer(XLSLabel, SizeOf(XLSLabel));
Stream.WriteBuffer(Pointer(S)^, Length(S));
end;
Inc(TotalCount);
end;
end;
end;
 
多人接受答案了。
 
后退
顶部