求救,我想把这个Excel导入到数据库的问题。感觉就差那么一点点

NEEZA哪吒 2022-11-10 20:04:16

 

不指定字段名字这个好用,但是只要Excel列顺序对不上,导入的内容就不匹配,所以我想用字段的模式,

      Fields[1].AsString := trim(Excel.WorkSheets[1].Cells[iRow, iCol + 1].value);
        Fields[2].Asstring := trim(Excel.WorkSheets[1].Cells[iRow, iCol + 2].value);
 

///下边这个就提示参数错误,EXCEL字段名字应该写在哪里呢?

        FieldByName('学号').AsString := trim(Excel.WorkSheets[1].Cells['学号'].value);
        FieldByName('姓名').AsString := trim(Excel.WorkSheets[1].Cells['姓名'].value);

...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
YiYanXiYin 2022-11-23
  • 打赏
  • 举报
回复 1

[]这种表示取数组的某个元素, []里面只能是数字, ()表示函数的参数, 参数类型是什么需要查函数的定义或者手册,
trim(Excel.WorkSheets[1].FieldByName('学号').value);这个为什么不行, 你需要查WorkSheets[1]这个是什么类型, 有没有FieldByName这个函数

tanqth 2022-11-10
  • 打赏
  • 举报
回复 1

Cells['学号']
不能这样使用的,他只能是一个单元格。
如果你的第一行是列名,可以试试:
FieldByName( trim(Excel.WorkSheets[1].Cells[1, iCol + 1].value)).AsString := trim(Excel.WorkSheets[1].Cells[iRow, iCol + 1].value);
这个,你必须保证excel里的列名在数据库里有对应的字段。

NEEZA哪吒 2022-11-11
  • 举报
回复
@tanqth 好用,多谢!感谢指教!
NEEZA哪吒 2022-11-10
  • 打赏
  • 举报
回复

FieldByName('学号').AsString := trim(Excel.WorkSheets[1].FieldByName('学号').value);

也不行,应该咋写呢

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧