您的位置:首页 > 编程语言 > Delphi

delphi XE LISTVIEW导出EXCEL

2019-05-21 10:59 1931 查看

1、调用

listtoexcel('abcd', jjd_list, 5);//第一个参数没什么用,随便写的。第二个参数就是LISTVIEW。第三个参数代表哪列是数值型。

2、代码

[code]function listtoexcel(ttname: string; tt: TListView; num_num: integer): string;
var
h, k, i: integer;
Excelid: OleVariant;
Y, X: integer;
Temsheet: OleVariant; // 工作薄
FWorkBook: OleVariant; // 工作表
// FExcel:OleVariant; //excel应用程序
begin
try
Excelid := CreateOLEObject('Excel.Application');
except
Application.MessageBox('Excel没有安装!', '提示信息', MB_OK + MB_ICONASTERISK +
MB_DEFBUTTON1 + MB_APPLMODAL);
Exit;
end;
try
k := tt.Items.Count;
h := tt.Columns.Count;
Excelid.Visible := False; // 是否显示

FWorkBook := Excelid.WorkBooks.Add(-4167); // 新的工作表
// Temsheet := FWorkBook.Worksheets.Add;
// Temsheet.Select;

// Temsheet.Name:='';
// Temsheet.Columns[1].ColumnWidth:=30;//设置列宽度
// Temsheet.Columns[2].ColumnWidth:=30;

// Temsheet:=Excelid.WorkBooks.Add;
// Excelid.worksheets[1].range['A1:c1'].Merge(True);
// Excelid.WorkSheets[1].Cells[1, 1].Value := ttname;
// Excelid.worksheets[1].Range['a1:a1'].HorizontalAlignment := $FFFFEFF4;
// Excelid.worksheets[1].Range['a1:a1'].VerticalAlignment := $FFFFEFF4;
// 写表头,以LISTVIEWS列名为准
for i := 0 to h - 1 do
begin
Excelid.Worksheets[1].Cells[1, i + 1].Value :=
tt.Columns.Items[i].Caption;

end;
// Temsheet:=FWorkBook.Worksheets.Add;
{ Temsheet.Name:='利润统计';
Temsheet.Select;
Temsheet.Columns[1].ColumnWidth:=4;//设置列宽度
Temsheet.Columns[2].ColumnWidth:=10;
Temsheet.Columns[3].ColumnWidth:=16; }
// Excelid.WorkSheets[1].Activate;
// 开始写内容
// Excelid.ActiveSheet.Columns[2].ColumnsWidth := 5;
// Excelid.ActiveSheet.Columns[1].Width := 20;
// Excelid.WorkSheets[1].Columns[1].ColumnsWidth := 20;
for X := 2 to k + 1 do
begin
Excelid.Cells.item[X, 1].numberformatlocal := '@';
Excelid.Worksheets[1].Cells[X, 1].Value := tt.Items.item[X - 2].Caption;
for Y := 2 to h do
begin
if num_num = Y then
begin
Excelid.Cells.item[X, Y].numberformatlocal := '0.00_ ';
end
else
begin
Excelid.Cells.item[X, Y].numberformatlocal := '@';
end;

Excelid.Worksheets[1].Cells[X, Y].Value := tt.Items.item[X - 2]
.SubItems[Y - 2];
end;
end;
except
// Application.MessageBox('导入数据出错!请检查文件的格式是否正确!', '提示信息', MB_OK + MB_ICONASTERISK + MB_DEFBUTTON1 + MB_APPLMODAL);
end;
Excelid.Visible := True; // 是否显示
end;

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: