5,379
社区成员
不指定字段名字这个好用,但是只要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);
[]这种表示取数组的某个元素, []里面只能是数字, ()表示函数的参数, 参数类型是什么需要查函数的定义或者手册,
trim(Excel.WorkSheets[1].FieldByName('学号').value);这个为什么不行, 你需要查WorkSheets[1]这个是什么类型, 有没有FieldByName这个函数
Cells['学号']
不能这样使用的,他只能是一个单元格。
如果你的第一行是列名,可以试试:
FieldByName( trim(Excel.WorkSheets[1].Cells[1, iCol + 1].value)).AsString := trim(Excel.WorkSheets[1].Cells[iRow, iCol + 1].value);
这个,你必须保证excel里的列名在数据库里有对应的字段。
FieldByName('学号').AsString := trim(Excel.WorkSheets[1].FieldByName('学号').value);
也不行,应该咋写呢