Delphi编程将数据库数据快速导入Excel.docx

上传人:夏** 文档编号:543716938 上传时间:2023-03-05 格式:DOCX 页数:5 大小:12.69KB
返回 下载 相关 举报
Delphi编程将数据库数据快速导入Excel.docx_第1页
第1页 / 共5页
Delphi编程将数据库数据快速导入Excel.docx_第2页
第2页 / 共5页
Delphi编程将数据库数据快速导入Excel.docx_第3页
第3页 / 共5页
Delphi编程将数据库数据快速导入Excel.docx_第4页
第4页 / 共5页
Delphi编程将数据库数据快速导入Excel.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Delphi编程将数据库数据快速导入Excel.docx》由会员分享,可在线阅读,更多相关《Delphi编程将数据库数据快速导入Excel.docx(5页珍藏版)》请在金锄头文库上搜索。

1、 Delphi编程将数据库数据快速导入ExcelarXlsEnd: array0.1 of Word = ($0A, 00);arXlsString: array0.5 of Word = ($204, 0, 0, 0, 0, 0);arXlsNumber: array0.4 of Word = ($203, 14, 0, 0, 0);arXlsInteger: array0.4 of Word = ($27E, 10, 0, 0, 0);arXlsBlank: array0.4 of Word = ($201, 6, 0, 0, $17); 接着调用下面的函数。 Procedure Expo

2、rtExcelFile(FileName: string; bWriteTitle: Boolean; aDataSet: TDataSet); vari, j: integer;Col, row: word;ABookMark: TBookMark;aFileStream: TFileStream;procedure incColRow; /增加行列号beginif Col = ADataSet.FieldCount - 1 thenbeginInc(Row);Col :=0;endelseInc(Col);end;procedure WriteStringCell(AValue: stri

3、ng);/写字符串数据varL: Word;beginL := Length(AValue);arXlsString1 := 8 + L;arXlsString2 := Row;arXlsString3 := Col;arXlsString5 := L;aFileStream.WriteBuffer(arXlsString, SizeOf(arXlsString);aFileStream.WriteBuffer(Pointer(AValue), L);IncColRow;end;procedure WriteIntegerCell(AValue: integer);/写整数varV: Inte

4、ger;beginarXlsInteger2 := Row;arXlsInteger3 := Col;aFileStream.WriteBuffer(arXlsInteger, SizeOf(arXlsInteger);V := (AValue shl 2) or 2;aFileStream.WriteBuffer(V, 4);IncColRow;end;procedure WriteFloatCell(AValue: double);/写浮点数beginarXlsNumber2 := Row;arXlsNumber3 := Col;aFileStream.WriteBuffer(arXlsN

5、umber, SizeOf(arXlsNumber);aFileStream.WriteBuffer(AValue, 8);IncColRow;end;beginif FileExists(FileName) then DeleteFile(FileName); /文件存在,先删除aFileStream := TFileStream.Create(FileName, fmCreate);Try/写文件头aFileStream.WriteBuffer(arXlsBegin, SizeOf(arXlsBegin);/写列头Col := 0; Row := 0;if bWriteTitle then

6、beginfor i := 0 to aDataSet.FieldCount - 1 doWriteStringCell(aDataSet.Fieldsi.FieldName);end;/写数据集中的数据aDataSet.DisableControls;ABookMark := aDataSet.GetBookmark;aDataSet.First;while not aDataSet.Eof dobeginfor i := 0 to aDataSet.FieldCount - 1 docase ADataSet.Fieldsi.DataType offtSmallint, ftInteger

7、, ftWord, ftAutoInc, ftBytes:WriteIntegerCell(aDataSet.Fieldsi.AsInteger);ftFloat, ftCurrency, ftBCD:WriteFloatCell(aDataSet.Fieldsi.AsFloat)elseWriteStringCell(aDataSet.Fieldsi.AsString);end;aDataSet.Next;end;/写文件尾AFileStream.WriteBuffer(arXlsEnd, SizeOf(arXlsEnd);if ADataSet.BookmarkValid(ABookMark) then aDataSet.GotoBookmark(ABookMark);FinallyAFileStream.Free;ADataSet.EnableControls;end;end;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号