文件导出的问题:如何将数据导出为Word或Excel文件?(SQL Server数据库)(200分)

  • 主题发起人 主题发起人 devid_zhang
  • 开始时间 开始时间
D

devid_zhang

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,请给出相关部分的源代码,devid_zhang@163.com,问题解决立即送分
 
这个问题已经问烂了!
 
能不能详细点啊,我初学的,没有用过什么dxgrid或ehlib
 
楼上说的是控作吗?在哪里有下载呢
 
EXCEL文件有个简单办法:
生成一个.csv的文本文件,字段间用逗号分隔,一条记录为一行,
可直接用EXCEL打开。
 
借花献佛了:
写数据库程序时,通常希望把DBGrid列表中的数据导入excel表格,以下通过在数据模块中写一个共用过程,在任何地方需要时进行调用即可:

const
{ XlWBATemplate }
xlWBATChart = -4109;
xlWBATExcel4IntlMacroSheet = 4;
xlWBATExcel4MacroSheet = 3;
xlWBATWorksheet = -4167;
procedure Tsysdb.SaveToExcel(Db_data:TDBGrid);
var
XlAPP:Variant;
excelcount:integer;
Sheet1:Variant;
i,j:integer;
begin
if not Db_data.DataSource.DataSet.Active then exit;
if Db_data.DataSource.DataSet.RecordCount<1 then exit;
//创建excel对象
try
XlApp:=createoleobject('Excel.Application');
XLApp.Visible:=false;
excelcount:=XLApp.Workbooks.count;
XLApp.Workbooks.Add(xlWBatWorkSheet);
Sheet1 := XLApp.Workbooks[1].WorkSheets['sheet1'];
except
showmessage('你的电脑没出息有安装excel程序,无法完成此功能!');
exit;
end;
//setfocus;处理标题
for j:=0 to Db_data.FieldCount-1 do
begin
sheet1.cells[1,j+1]:=Db_data.Columns[j].Title.Caption;
end; //处理记录
Db_data.DataSource.DataSet.First;
i:=2;
while not Db_data.DataSource.DataSet.Eof do
begin
//处理一行
for j:=0 to Db_data.FieldCount-1 do
begin
if Db_data.Fields[j]<>nil then
Sheet1.cells[i,j+1]:=trim(Db_data.Fields[j].asstring)
else
Sheet1.cells[i,j+1]:='';
end;
i:=i+1;
Db_data.DataSource.DataSet.Next;
end;
XLApp.Visible:=true;
end;
 
楼上的,谢谢了,但我需要掌握真正实现的技术
 
谢谢louhong
 
再试试这个:
var
I: Integer;
Str: String;
StrList: TStringList;//用于存储数据的字符列表
begin
StrList := TStringList.Create;
try
with Table1 do
begin
First;
while not Eof do
begin
Str := '';
for I := 0 to FieldCount-1 do
Str := Str + Fields.AsString + #9;
StrList.Add(Str);
Next;
end;
StrList.SaveToFile('test.xls');
end;
StrList.Free;
except
StrList.Free;
end;
end;
 
分配了分数之后,按什么按钮结贴呀
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
654
import
I
后退
顶部