|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2017/4/27 21:41:07 |
标题: |
服务程序多线程环境下读取excel,用那种办法合适? |
浏览:1691 |
|
加入我的收藏 |
楼主: |
我有一个服务程序,要下excel文件并打开读入数据到数据库,对excel读取该用那种方法好: 1-COM,服务器要安装msoffice 2-ADO,视excel为一个表 3-tms XlsImport控件 4-Dev dxSpreadSheet 还有啥好的方法,请兄弟们赐教!
----------------------------------------------
- |
作者: |
|
2017/4/27 22:02:46 |
1楼: |
uses ComObj; Conn: TADOConnection; qry: TADOQuery; var Excel: OLEVariant; ExcelVersion: string; begin try Excel := CreateOLEObject('EXCEL.Application'); ExcelVersion := Excel.version; finally Excel.Quit; Excel := UnAssigned; end; Conn.Close; if ExcelVersion = '11.0' then //Excel2003及早期的版本 Conn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + filename + ';Extended Properties=excel 8.0;' + 'Persist Security Info=false;' else //Excel2007及以后的版本 Conn.ConnectionString:='Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + filename + ';Extended Properties=excel 12.0;' + 'Persist Security Info=True'; //注意不能为false Conn.LoginPrompt:=false; Conn.Connected:=true; qry.Connection:=Conn; qry.close; qry.SQL.Clear; qry.SQL.add('select * from ['+sheet1+'$]'); qry.Active:=true; ... end;
----------------------------------------------
-
|
作者: |
vmao (毛小毛) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/4/27 22:16:05 |
2楼: |
nativeexcel效率高,速度快,公式支持更好,使用方便。缺点是最高只支持到XE4。其次是TMS的Flexcel,写起来相对麻烦,效率还可以,公式支持不是最好,但只要不是太复杂基本也能应付。
COM方式多用户读取速度巨慢,占用内存,容易弄不好要死进程。OLEDB方式有可能会读取错误,比如:工号0开头的,有可能当做数字的时候就读不到前置的0字符了,还有比如手机号码,有可能搞成科学计数什么的。这两种方式都不推荐使用。
----------------------------------------------
-
|
作者: |
|
2017/4/28 7:14:53 |
3楼: |
xlsreadwrite不错
----------------------------------------------
delphier
|
作者: |
star5 (星五) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/4/28 8:01:40 |
4楼: |
nativeexcel3.1.0我在d10.1下使用良好,32和64位下也正常。 xlsreadwriteii5或者6也都还行,以前用的比较多,一些小功能比较方便。
----------------------------------------------
博客 - http://offeu.com 脚本模型 - http://webpascal.com 需要短信接口的请联系我,可发行业与营销内容。
|
作者: |
|
2017/4/28 15:42:40 |
5楼: |
推荐NativeExcel, NativeExcel3.1.0 在10.2下使用正常。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
|
作者: |
|
2017/4/29 9:47:05 |
6楼: |
谢谢各位大师的指点,我把NativeExcel3.1.0下载来,改了一下定义,可以在tokyo上使用,发让来给大家下载。
----------------------------------------------
-
|
作者: |
|
2017/4/29 16:25:28 |
7楼: |
NativeExcel对xlsx格式支持不太完善,我试过读取部分数据返回空。推荐用xlsreadwriteii,速度和功能都比NativeExcel好。
----------------------------------------------
-
|
作者: |
yemny (yemny) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/4/29 16:36:11 |
8楼: |
ExpressSpreadSheet 用也很简单 文档 样例 丰富
----------------------------------------------
-
|
作者: |
|
2017/5/1 21:36:32 |
9楼: |
NativeExcel还不错,小巧精干,官方为啥不更新了?
----------------------------------------------
-
|
|