未安装excel delphi listview导出到excel
来源:互联网 发布:windows live软件包 编辑:程序博客网 时间:2024/06/07 07:53
procedure ExportExcelFile(FileName: string; bWriteTitle: Boolean; aLv: TListView); //无需安装excel
var
i, j: integer;
Col, row: word;
s: string;
aFileStream: TFileStream;
procedure IncColRow; //增加行列号
begin
if Col = aLv.Columns.Count - 1 then
begin
Inc(Row);
Col :=0;
end
else
Inc(Col);
end;
procedure WriteStringCell(AValue: string);//写字符串数据
var
L: Word;
begin
L := Length(AValue);
arXlsString[1] := 8 + L;
arXlsString[2] := Row;
arXlsString[3] := Col;
arXlsString[5] := L;
aFileStream.WriteBuffer(arXlsString, SizeOf(arXlsString));
aFileStream.WriteBuffer(Pointer(AValue)^, L);
IncColRow;
end;
procedure WriteIntegerCell(AValue: integer);//写整数
var
V: Integer;
begin
arXlsInteger[2] := Row;
arXlsInteger[3] := Col;
aFileStream.WriteBuffer(arXlsInteger, SizeOf(arXlsInteger));
V := (AValue shl 2) or 2;
aFileStream.WriteBuffer(V, 4);
IncColRow;
end;
procedure WriteFloatCell(AValue: double);//写浮点数
begin
arXlsNumber[2] := Row;
arXlsNumber[3] := Col;
aFileStream.WriteBuffer(arXlsNumber, SizeOf(arXlsNumber));
aFileStream.WriteBuffer(AValue, 8);
IncColRow;
end;
begin
if FileExists(FileName) then DeleteFile(FileName); //文件存在,先删除
aFileStream := TFileStream.Create(FileName, fmCreate);
Try
aFileStream.WriteBuffer(arXlsBegin, SizeOf(arXlsBegin));
Col := 0; Row := 0;
if bWriteTitle then
begin
for i := 0 to aLv.Columns.Count - 1 do
WriteStringCell(aLv.Columns[i].Caption);
end;
for i := 0 to aLv.Items.Count - 1 do
begin
for j := 0 to aLv.Columns.Count - 1 do
begin
if j = 0 then
s := aLv.Items[i].Caption
else
s := aLv.Items[i].SubItems[j-1];
WriteStringCell(s);
end;
end;
AFileStream.WriteBuffer(arXlsEnd, SizeOf(arXlsEnd));
showinfo('导出成功!');
Finally
AFileStream.Free;
end;
end;
var
i, j: integer;
Col, row: word;
s: string;
aFileStream: TFileStream;
procedure IncColRow; //增加行列号
begin
if Col = aLv.Columns.Count - 1 then
begin
Inc(Row);
Col :=0;
end
else
Inc(Col);
end;
procedure WriteStringCell(AValue: string);//写字符串数据
var
L: Word;
begin
L := Length(AValue);
arXlsString[1] := 8 + L;
arXlsString[2] := Row;
arXlsString[3] := Col;
arXlsString[5] := L;
aFileStream.WriteBuffer(arXlsString, SizeOf(arXlsString));
aFileStream.WriteBuffer(Pointer(AValue)^, L);
IncColRow;
end;
procedure WriteIntegerCell(AValue: integer);//写整数
var
V: Integer;
begin
arXlsInteger[2] := Row;
arXlsInteger[3] := Col;
aFileStream.WriteBuffer(arXlsInteger, SizeOf(arXlsInteger));
V := (AValue shl 2) or 2;
aFileStream.WriteBuffer(V, 4);
IncColRow;
end;
procedure WriteFloatCell(AValue: double);//写浮点数
begin
arXlsNumber[2] := Row;
arXlsNumber[3] := Col;
aFileStream.WriteBuffer(arXlsNumber, SizeOf(arXlsNumber));
aFileStream.WriteBuffer(AValue, 8);
IncColRow;
end;
begin
if FileExists(FileName) then DeleteFile(FileName); //文件存在,先删除
aFileStream := TFileStream.Create(FileName, fmCreate);
Try
aFileStream.WriteBuffer(arXlsBegin, SizeOf(arXlsBegin));
Col := 0; Row := 0;
if bWriteTitle then
begin
for i := 0 to aLv.Columns.Count - 1 do
WriteStringCell(aLv.Columns[i].Caption);
end;
for i := 0 to aLv.Items.Count - 1 do
begin
for j := 0 to aLv.Columns.Count - 1 do
begin
if j = 0 then
s := aLv.Items[i].Caption
else
s := aLv.Items[i].SubItems[j-1];
WriteStringCell(s);
end;
end;
AFileStream.WriteBuffer(arXlsEnd, SizeOf(arXlsEnd));
showinfo('导出成功!');
Finally
AFileStream.Free;
end;
end;
0 0
- 未安装excel delphi listview导出到excel
- DELPHI-----listview导出到excel
- listview导出到Excel
- ListView导出到Excel
- ListView导出到Excel
- delphi导出数据到excel
- CxGrid导出到Excel(Delphi)
- delphi-采用内存流将ListView数据导出为Excel文件(未装office可用)
- Delphi从DataSet导出到Excel
- delphi SQL导出到excel 剪切板
- Delphi数据导出到EXCEL方法
- delphi dbgrideh导出到Excel 多表头
- C#从ListView导出到Excel
- Excel txt导入导出到 LISTVIEW
- <转>ListView导出到Excel的方法
- Delphi导出Excel
- delphi导出Excel
- Delphi导出Excel大全
- Web.py 的搭建
- MAC 下使用 IStat Menus 来来监视自己的Mac 的状态
- 发送邮件网页样式乱了。
- utilities——比较与排序规则(C++)
- VS2010与SVN
- 未安装excel delphi listview导出到excel
- RejectedExecutionException
- Linux操作系统中/sbin/init程序的执行过程
- Vert.x 3学习笔记---14( Web篇 )
- Linux系统设置定时任务
- 那些 ~修饰符
- 一分钟认识 Git
- MATLAB硕博联盟招聘
- 树莓派增加触摸开关模块