5,927
社区成员




Delphi版本:Xe10.3.3 XLSReadWrite 版本:6.00.47
Form上放了 TXLSReadWriteII5 XLSDbRead51 memTableEh
设置XLSDbRead51的两个属性如下:
XLSDbRead51.DataSet -> memTableEh1
XLSDbRead51.XLS -> XLSReadWriteII51
XLSReadWriteII51.Clear;
XLSReadWriteII51.Filename:= ExcelPath;
memTableEh1.Close;
DataSource1.DataSet:=memTableEh1;
XLSDbRead51.Read;执行到这里就提示 Cannot perform this operation on a closed dataset;
//如果在上面这段XLSDbRead51.Read; 之前先打开memTableEh1.active:=True; 这段就会报错
我找了TXLSReadWrite的demo 他的demo(DbReadNew) 运行起来也是报错 所以我也不知道怎么搞了 网上没有搜到相关的说明,望各位大哥帮帮忙
你搞错XLSDbRead51 的用途了,XLSDbRead51 的用途是把数据表中的数据写入xls文件中,而不是把xls文件中的数据读入数据表中。
因为可以确定的是一个数据表格式是严谨的,所以可以读取数据表的数据并写入xls文件,但并不能确定一个数据表中的数据是严谨的数据表格式,把一个格式错乱的xls文档读成一个数据表是不现实的。
没用过XLSReadWriteII5, 但如果你的目的是把excel数据拷贝到FDMemTable的话, 估计可以用以下方法:
FDMemTable1.CopyDataSet(XLSDbRead51.DataSet, [coStructure, coRestart, coAppend]);