求一个Excel表格数据存储到access数据库的问题!!!(200)

  • 主题发起人 主题发起人 likingzhe
  • 开始时间 开始时间
L

likingzhe

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个excel表格,我要把里面的数据转入到access数据库里,可表格的格式让我不知道该怎么存储,希望大侠们,帮我解决它!excel表格示范: A B C D E F G 1 姓名 职称 日期 周一 周二 2 时间 教室 时间 教室 。。3 小王 课教师 2009.07-2009.08 9-10 教室1 13-14 教室1 。 4 11-12 教室2 15-16 教室4 。5 小刘 主任 2009.07-2009.08 9-10 教室1 13-14 教室1 。6 11-12 教室2 15-16 教室4 。7 类似这样一个表格,真实的表格放在我的笔记里,大家可以去看。真实表和这个还是有点区别的。而我要存储access数据库的内容是这样 (字段)(列) 姓名 职称 开始日期 结束日期 开始时间 结束时间 教室1 小王 课教师 2009.07 2009.08 9 10 教室12 小王 课教师 2009.07 2009.08 11 12 教室23 小王 课教师 2009.07 2009.08 13 14 教室14 小王 课教师 2009.07 2009.08 15 16 教室45 小刘 主任 2009.07 2009.08 9 10 教室16 小刘 主任 2009.07 2009.08 11 12 教室27 小刘 主任 2009.07 2009.08 13 14 教室18 小刘 主任 2009.07 2009.08 15 16 教室4差不多是这样吧,其实还要在细分些。例如,日期吧,2009.07-2009.08这个能拆成access那样最好,不能也没什么,在一起一个字段里也可以。但时间是一定要拆出来的。如果真的拆不出来,也勉强接受,我在想其他办法解决。 差不多我的需求是这样的了,有能帮我解决的大侠,我非常的感谢。我会把详细的需求在说清楚的。请大家帮帮忙,非常感谢。
 
补充下:excel表格,有周一,周二,周三。。这样的列也就是要1对多了,把按照前面的说法,把小王周一,写到数据库里了,然后写周二的。一直到周三。。然后就是小刘的,从周一到周三。。。如果这样无法实现,就只写周一的,周二以后的就不需要考虑了。
 
将excel 直接读到 Adoquery , 然后再通过for一条条记录读出來再对字段进行判断, 取到合适的字段后,再写入数据库。读到特需的,如“周一” 这些字段值的时候,直接舍弃读到“11-12” 这些字段值的时候,用函数拆分,根据拆分结果分条插入
 
先要记得记录 姓名 职称 日期 三个值,这样,碰上以下情况,用上面的记录值代替。4 11-12 教室2 15-16 教室4 。
 
yangb0803大侠,能给个示范例子嘛,这个excel的东西,我没有做过,不是太明白。基本意思我明白,也知道该怎么去理解。可是没有做过excel,怎么读取,和判断?
 
请大侠们多出手
 
AdoTable 可以直接连接EXCEL表的function TdExcelToDb.ConnectExcelFile(var List:Tstrings; ExcelFile: String; MemoLog: Tmemo): boolean;begin Result := False ; try List:=TStringList.Create; List.Clear; ADOConnection.Close; ADOConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ExcelFile+';Mode=Share Deny None;Extended Properties=Excel 8.0;Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Ty ' ; ADOConnection.Open; ADOConnection.GetTableNames(list,false); MemoLog.Lines.Add('Open EXCEL succeesed,Please select table Success') ; Result := True ; except MemoLog.Lines.Add('The File is not EXCEL Format !') ; ADOConnection.Close; Table1.Close; end;end;
 
判断的我是这么做的 for K := 0 to Table1.FieldCount-1 do begin ExcelField := LowerCase(Table1.Fields.Fields[K].FieldName) ; if TbField=ExcelField then begin if not (Table1.FieldByName(TbField).IsNull) then qtySong.FieldByName(TbField).Value := Table1.FieldByName(TbField).Value ; Break ; end; end ;
 
yangb0803大侠很感谢您的出手! 您的回答,我看了。我昨天从网上找到示例,能把我的excel表格存储到access里,存起来到不是很难。可不是我想要的。。。还要必须在次拆分access表格里的数据才能得到我想要的记录信息。 您的回答,能帮我解决,我的困惑嘛?其实存在access里了,问题就好解决了,可是拆分起来真的是 很麻烦。。。它是按照excel那样直接存储好的。。excel空的地方,它也是空的。因为有规律,到不是不能解决,一个标题记录里分4条小记录(周一,按照上下午,应该就是8条记录了。在按照周一到周日,7*8=56条。。。55,这个先不管了,就按照周一一天来处理。)这样数据应该是这样的: 简单示例图: 姓名 时间1 小薇 12 小薇 23 小薇 34 小薇 4现在我得到的是这样: 姓名 时间1 小薇 12 23 34 4这样填写应该不是什么问题,可就是excel表格太复杂,拆分起来的东西很多。我现在也在争取,把excel的表格,按照我的设想修改下,不过这个可能性比较低。目前看,只能用对方提供的excel表格来做。。 笨一点的方法,繁琐的方法,目前好像勉强能做出来。不过肯定无法接受这个效果。。看看怎么能更自动些。而且,大侠看看,如果设计这个excel表格,要是变更的话,怎么才能改动最小,但我们做起来更容易?您也提个参考,,,,,,,,呵呵。 要是不改变excel表格,程序该怎么设计?
 
1 小薇 12 23 34 4这个空,你可以直接记录額……var str: WideString ; i : Integer ;begin for i := 0 to Adotable.recordcount -1 do begin if Adotable.fieldbyname('姓名').string <> '' then //当字段不为空的时候,重新赋值,否则以上次取到的值填充 str := Adotable.fieldbyname('姓名').string ; AdoSqlTable.Append; AdoSqlTable.fieldbyname('姓名').string := str ; AdoSqlTable.post; Adotable.next; end;end;
 
EXCEL 表格都这样了,修改起来,没人愿意的,只要日期,时间那个“-”标记正确,拆分起来很简单的了你建表后,拆分完毕了,再入ACCESS表啊,不要只对应的插…也就是說,在数据入表这步,就要把数据按照要求拆分好。
 
yangb0803大侠,我的excel表格在我的笔记里,或者您留下qq之类的联系方式,我发给您,您帮我看看?
 
试试我的建议:把excel保存为.csv的格式 然后一行一行导入sccess就比较容易了 我就做过。
 
huashi86大侠,csv是什么东东?不是很明白
 
把excel内容导入access,再通过查询与语弄出楼主想要的格式。你把时间再多设字段就行了。例如: xm rq 小王 2009.07-2009.08 sql.Text:='select xm as 姓名,left(rq,7) as 开始日期,right(rq,7) as 结束日期 from cfsj' ;
 
csv 在Excel里面的另存为 下拉选择保存类型为*.csv 这样既可以用txt打开(打开是以逗号分隔的),也可以用excel打开 用delphi读取的方式和读取txt的是一样的
 
楼上的回答不是很明白。。。。做是一定能弄出来的,就是繁琐点。。。aufewu大侠回答更实际些。。。有没有按照我说的那样的表格,有个详细的的答案呢?
 
.............该怎么做呢。。。帮帮忙了
 
高薪招聘程序员要求: 1:熟悉OD调试,ASM,能掌握IDA更好 2:做过几个项目,在项目中运用到VC+内联汇编或者宏汇编S 3: 网上兼职一名,要有足够时间工资面议 (年薪另算) 联系QQ:1067070772 815973084
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
767
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部