首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

急EXCEL导入MDB时 有标题的怎么办?或是从第几行读取

2012-03-16 
急.EXCEL导入MDB时 有标题的怎么处理?或是从第几行读取?在弄一个小程序.EXCEL导入MDBEXCEL 第一行是标题

急.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)

热点排行