如何实现DELPHI中EXCEL整行或整列赋值
我给EXCEL添加数据的时候一个一个单元格赋值太慢了
求教大虾 最好有代码
我给EXCEL添加数据的时候一个一个单元格赋值太慢了
求教大虾 最好有代码
解决方案 »
- 问一个比较幼稚的问题:如果使用了SQL SERVER2000数据库,不会侵权吧?
- 如何把过滤的结果集赋值给DataSet
- 散分,捎带一个Word问题
- 技术讨论:delphi有动态编译代码的功能吗?
- 一个关于图像保存的问题 紧急求助!!!!!
- dbgrideh STFilter 问题到底有没有人会用啊?高手都去哪里了?
- 谁能告诉我为什么会出现这样得错误?
- 窗体上有30几个Tedit文本框,想控制用户的输入---每个文本框输入长度不超过30个字符,如何编写?
- 高分低难度问题,先来先得:怎么使用BlockWrite()这个函数?
- Delphi带的Zlib是支持zip格式的吗?
- 请问那位大虾有最新的SvCom控件,要有源码的?
- 关于webservice客户端问题
// 代码入下:
// 说明:这个是调试过的,是可以使用的
参数:
RptTitle :导出报表的标题;Grid: 要导出的Dbgrid(如果是dataset你可以自己修改一下)function DBGridToExcel(RptTitle:String;Grid: TDBGridEh): Integer;
var
i,j,k:integer;
ColTitle,FieldData,Msg :string;
StrList :Tstringlist;
SaveDlg: TSaveDialog;
begin
SaveDlg := TSaveDialog.Create(nil);
StrList:=TStringList.Create;
try
//初始化
Result :=-1;
if Grid.DataSource = nil then Exit;
if Grid.DataSource.DataSet = nil then Exit;
if not Grid.DataSource.DataSet.Active then Exit;
if Grid.DataSource.DataSet.IsEmpty then Exit;
SaveDlg.Filter := 'Excel文档|*.xls';
if not SaveDlg.Execute then Exit;
FieldData := '';
ColTitle := '';
//加入报表名称
StrList.add(RptTitle);
//加入字段名(列标题首先须改为汉字)
for k :=0 to (Grid.FieldCount-1) do
begin
if not Grid.Columns[k].Visible then
continue
else
ColTitle :=ColTitle+(Grid.Columns[k].Title.Caption)+#9;
end;
StrList.add(ColTitle);
//加入数据
with Grid.DataSource.DataSet do
begin
DisableControls;
First;
for j:=0 to (RecordCount-1) do
begin
FieldData:='';
for i:=0 to (Grid.FieldCount-1) do
begin
if not Grid.Columns[i].Visible then
continue
else
FieldData:=FieldData+(Grid.DataSource.DataSet.FieldByName(Grid.Columns[i].FieldName).AsString)+#9;
end;
StrList.add(FieldData);
Next;
end;
First;
EnableControls;
end;
//文件覆盖提示
if FileExists(SaveDlg.FileName+'.xls') then
begin
Msg := '已存在文件(' + SaveDlg.FileName + '),是否覆盖?';
if ShowAsk(PChar(Msg)) then
begin
//删除文件
DeleteFile(SaveDlg.FileName)
end
else
exit;
end;
//保存文件
StrList.savetofile(SaveDlg.FileName+'.xls');
Result := Grid.DataSource.DataSet.RecordCount; //返回记录数
finally
SaveDlg.Free;
StrList.Free;
end;
end;如果有什么问题,继续切磋!