读书人

急EXCEL导入MDB时 有标题的怎么办?或是

发布时间: 2012-03-16 16:34:56 作者: rapoo

急.EXCEL导入MDB时 有标题的怎么处理?或是从第几行读取?
在弄一个小程序.EXCEL导入MDB
EXCEL 第一行是标题 第二有一个日期
第三行才是正常的字段名
第四行就是正常的数据了
标 题
日期:2011年3月3日
序号,收货人,件数,货物名称,代收货款,运费,手续费,取货时间,合计
这样的结构


如果手工删掉第一二行后,
第三行做为字段名,
使用ADOQuery,才能正常导入.
Close;
SQL.Text:='SELECT 收货人,件数,货物名称,代收货款,运费,手续费,取货时间,合计 INTO SJ1 FROM [货物清单$] IN "'+ FileName + '" "EXCEL 8.0;"';
ExecSQL;

能够导入,很快,速度很满意.
但是客户的EXCEL就是有标题和第二行的日期 让客户每次都手工删除不太好

所以求教怎么样在导入时过滤第一二行,
直接拿第三行当字段名读入数据呢?


谢谢,谢谢.


[解决办法]
Try unnamed range like this:

select * from [货物清单$A4:H65531]

Hope it helps.

//Ali
[解决办法]
你用的ado的方式导入的,导入之前在程序里面把你不需要的行给删除,例如:
uses   ComObj;
var   Excel:   OleVariant;
begin
    Excel   :=   CreateOLEObject( 'Excel.Application ');
    Excel.WorkBooks.Open( 'c:\1.xls ');//打开
    Excel.WorkSheets[1].Rows[1].Delete;  //删除第一行
    Excel.ActiveWorkbook.Save;     //   保存
    Excel.Quit;//退出
end;
或者不用ado的方式来导入,写个循环,单元格一个个读取值,然后导入数据库
[解决办法]
可以用Cast函数把字符串('2011-04-20 20:19:19')转换成时间类型可以试试,仅供参考
[解决办法]
cast是数据库的函数,具体可以看看帮助。cast('2009-01-01' as datetime)

读书人网 >.NET

热点推荐