在导出的数字前加‘’怎么实现,我的数据类型都是在表里面定义的,我现在是把DGBridEh表格中的内容导出成Excel文件啊
解决方案 »
- delphi 新手求助,向listview 添加数据的问题。期望解答。
- 想实现一个类似window剪切板的功能,该怎么做?
- 关于FORM显示问题
- 请大哥们帮我合并这两个表?
- StringGrid为只读的,然后控制某写列可以写,和StringGrid为可以写的,然后控制某写列只读是不一样的,为什么?
- 请问超市的POS 用的是什么型号的条码扫描仪?
- 带有省略号按钮的tedit?
- mdi form 的問題 在d7中
- 请问那有delphi书下载,up有分!
- 请问如何让应用程序始终处于屏幕的最上层?(在线等待!!!)
- InstallShield Professional 6.22 ,打包大人入,先谢了。
- 在线程中,使用application.ProcessMessages;sleep(2000);危险吗?
procedure TFrm_Main.ExcelDBGrid(FdbGrid: TDBgrideh; toExcel: Boolean);
var
bm: TBook;
col, row: Integer;
sline, rownum: string;
mem: TMemo;
ExcelApp: Variant;
reccount, RowCount: Integer;
MyDBSumList: TDBSumList;
begin
reccount := 0;
MyDBSumList:=TDBSumList.Create(nil);
MyDBSumList.DataSet := FDBGrid.DataSource.DataSet;
MyDBSumList.SumCollection.Add;
MyDBSumList.SumCollection.Items[0].GroupOperation := Gocount;//你可以换成gosum
MyDBSumList.SumCollection.Items[0].FieldName := FDBGrid.Fields[0].FullName;
MyDBSumList.Active := True;
RowCount := trunc(MyDBSumList.SumCollection.Items[0].SumValue);
MyDBSumList.Free;
Screen.Cursor := crHourglass;
FDBGrid.DataSource.DataSet.DisableControls;
bm := FDBGrid.DataSource.DataSet.GetBook;
FDBGrid.DataSource.DataSet.First;
if toExcel then
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.WorkBooks.Add(xlWBatWorkSheet);
end;
mem := TMemo.Create(nil);
mem.Parent := Fdbgrid.Parent;
mem.Visible := False;
mem.Clear;
sline := '';
for col := 0 to FDBGrid.Columns.Count - 1 do
sline := sline + FDBGrid.Columns[col].Title.Caption + #9;
mem.Lines.Add(sline);
for row := 1 to RowCount do
begin
sline := '';
for col := 0 to FDBGrid.FieldCount - 1 do
begin
sline := sline + FDBGrid.Columns[col].DisplayText + #9;
end;
mem.Lines.Add(sline);
if row mod 150 = 0 then
begin
mem.SelectAll;
mem.CopyToClipboard;
if toExcel then
begin
rownum := 'A' + inttostr(reccount + 1);
ExcelApp.Workbooks[1].WorkSheets[1].Range[rownum].PasteSpecial;
mem.Clear;
Clipboard.Clear;
reccount := row + 1;
end;
end;
FDBGrid.DataSource.DataSet.Next;
end;
mem.SelectAll;
mem.CopyToClipboard;
if toExcel then
begin
rownum := 'A' + inttostr(reccount + 1);
ExcelApp.Workbooks[1].WorkSheets[1].Range[rownum].PasteSpecial;
ExcelApp.Visible := True;
end;
FreeAndNil(mem);
FDBGrid.DataSource.DataSet.GotoBook(bm);
FDBGrid.DataSource.DataSet.FreeBook(bm);
FDBGrid.DataSource.DataSet.EnableControls;
Screen.Cursor := crDefault;
end;
比始说 写成 ‘'’+要导出的数
如:cell(1,1)='''+07113244111
你的方法行不通的,数字前面的0会自动去掉
lovendII(戒情人)
这一句加在哪??我试了好几个地方都不行啊