cnExcel.GetFieldNames(sTableName, XlsFieldList) ;
应该是文件的关系,不知是文件大小还是文件中定义了链接或宏的缘故?
15 个解决方案
#1
把连接去掉试一试
#2
to Dingobin(丁丁历险)
不是很明白,能否详细说说?
不是很明白,能否详细说说?
#3
什么错误??
#4
XlsFieldList为空的。
而且很奇怪的是,不是每个EXCEL文件都会这样,而且只要把文件中的该工作表另存为另外的文件也不会出现这问题,不知道这到底是什么问题/
而且很奇怪的是,不是每个EXCEL文件都会这样,而且只要把文件中的该工作表另存为另外的文件也不会出现这问题,不知道这到底是什么问题/
#5
你把详细的代码贴出来,并且说明详细的错误
#6
以下是以前我回答过别人的一些文字,希望对你有帮助。
经过摸索,我终于找到了方便快捷的通过jet把excel数据导出方法,我把我的一些经验写出来,希望对后人有帮助.
假设有一个excel表d:\在职职工库.xls,簿中有一个表在职职工,其中有如下数据
2002年5月职工花名册
序号 姓名 性别 民族 工资
1 张三 男 汉 800.00
2 李四 男 回 1200.00
3 张芸 女 汉 852.00
4 何天荣 男 满 962.00
现要把其中的职工数据导出到d:\zghmc.dbf.
首先用excel打开d:\在职职工库.xls,选择包含职工数据的区域,不包括标题"2002年5月职工花名册",执行"插入->名称->定义",输入zgk,为所选的数据定义一个名称,关闭excel.
如果你的excel表没有标题,完全是一个二维表,就不用定义名称,用adotable连接后设置tabledirect为true,你的excel数据库要有一个字段名,就像其它数据库一样是一个二维表.
在project中加入一个ADOConnection1、一个ADOQuery1,添加以下代码:
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\在职职工库.xls;Extended Properties=excel 8.0;Persist Security Info=False';
ADOQuery1.Connection:= ADOConnection1;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * into zghmc in "d:\" "dBASE 5.0;" from zgk' );
ADOQuery1.ExecSQL;
ADOQuery1.Close;
然后编译运行,就把excel中的职工数据导出到d:\zghmc.dbf中了。
如果要在程序中显示excel中的数据,添加一个ADOTable1,设置Connection为ADOConnection1就可以了.
经过摸索,我终于找到了方便快捷的通过jet把excel数据导出方法,我把我的一些经验写出来,希望对后人有帮助.
假设有一个excel表d:\在职职工库.xls,簿中有一个表在职职工,其中有如下数据
2002年5月职工花名册
序号 姓名 性别 民族 工资
1 张三 男 汉 800.00
2 李四 男 回 1200.00
3 张芸 女 汉 852.00
4 何天荣 男 满 962.00
现要把其中的职工数据导出到d:\zghmc.dbf.
首先用excel打开d:\在职职工库.xls,选择包含职工数据的区域,不包括标题"2002年5月职工花名册",执行"插入->名称->定义",输入zgk,为所选的数据定义一个名称,关闭excel.
如果你的excel表没有标题,完全是一个二维表,就不用定义名称,用adotable连接后设置tabledirect为true,你的excel数据库要有一个字段名,就像其它数据库一样是一个二维表.
在project中加入一个ADOConnection1、一个ADOQuery1,添加以下代码:
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\在职职工库.xls;Extended Properties=excel 8.0;Persist Security Info=False';
ADOQuery1.Connection:= ADOConnection1;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * into zghmc in "d:\" "dBASE 5.0;" from zgk' );
ADOQuery1.ExecSQL;
ADOQuery1.Close;
然后编译运行,就把excel中的职工数据导出到d:\zghmc.dbf中了。
如果要在程序中显示excel中的数据,添加一个ADOTable1,设置Connection为ADOConnection1就可以了.
#7
好东西!
#8
to dejoy(燕青):
请问zgk是怎么设置的?手工?还是由程序设置?
我的代码:
cnExcel.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + AExcelFile + ';' +
'Extended Properties=Excel 8.0;' +
'Persist Security Info=False' ;
cnExcel.LoginPrompt := false ;
try
cnExcel.Open ;
except
exit ;
end;
cnExcel.GetFieldNames(sTableName, XlsFieldList) ;
其中:1、AExcelFile为Excel文件名(包含路径);
2、sTableName为Excel文件中第一个工作表名称;
3、cnExcel为ADOConnection;
请问zgk是怎么设置的?手工?还是由程序设置?
我的代码:
cnExcel.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + AExcelFile + ';' +
'Extended Properties=Excel 8.0;' +
'Persist Security Info=False' ;
cnExcel.LoginPrompt := false ;
try
cnExcel.Open ;
except
exit ;
end;
cnExcel.GetFieldNames(sTableName, XlsFieldList) ;
其中:1、AExcelFile为Excel文件名(包含路径);
2、sTableName为Excel文件中第一个工作表名称;
3、cnExcel为ADOConnection;
#9
可能是GetFieldNames有问题吧。
还是用ADOCONNECTION获取
还是用ADOCONNECTION获取
#10
cnExcel.GetFieldNames(sTableName, listbox1.Items) ;
或
adotable1.Connection:=cnexcel;
adotable1.TableDirect:=true;
adotable1.GetFieldNames(XlsFieldList);
我不知道你的XlsFieldList是一个什么东西.
或
adotable1.Connection:=cnexcel;
adotable1.TableDirect:=true;
adotable1.GetFieldNames(XlsFieldList);
我不知道你的XlsFieldList是一个什么东西.
#11
少了一句
adotable1.TableName:='[Sheet1$]';
adotable1.TableName:='[Sheet1$]';
#12
谢谢 dejoy(燕青)
XlsFieldList :TStringList,应该没什么问题吧。现在奇怪的是,有点文件没有问题,有点文件才会出现这样的问题。真是奇怪!
另外,我想问一下,打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示,谢谢!
XlsFieldList :TStringList,应该没什么问题吧。现在奇怪的是,有点文件没有问题,有点文件才会出现这样的问题。真是奇怪!
另外,我想问一下,打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示,谢谢!
#13
to zfmich()
打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示:
去掉excel文件中的自定义宏或把相应宏进行数字签名
有点文件没有问题,有点文件才会出现这样的问题
打开excel表要求相应表第一行为字段列表
打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示:
去掉excel文件中的自定义宏或把相应宏进行数字签名
有点文件没有问题,有点文件才会出现这样的问题
打开excel表要求相应表第一行为字段列表
#14
to fontain() :
“去掉excel文件中的自定义宏或把相应宏进行数字签名”
是手工实现?还是程序实现?如果是程序实现?如何处理?
打开excel表要求相应表第一行为字段列表
文件的格式都是一样的啊?
“去掉excel文件中的自定义宏或把相应宏进行数字签名”
是手工实现?还是程序实现?如果是程序实现?如何处理?
打开excel表要求相应表第一行为字段列表
文件的格式都是一样的啊?
#15
看office帮助,office有个人数字签名软件,只能用于本机。
如果第一行不识字段列表,直接用ado打开可能会有问题
如果第一行不识字段列表,直接用ado打开可能会有问题
#1
把连接去掉试一试
#2
to Dingobin(丁丁历险)
不是很明白,能否详细说说?
不是很明白,能否详细说说?
#3
什么错误??
#4
XlsFieldList为空的。
而且很奇怪的是,不是每个EXCEL文件都会这样,而且只要把文件中的该工作表另存为另外的文件也不会出现这问题,不知道这到底是什么问题/
而且很奇怪的是,不是每个EXCEL文件都会这样,而且只要把文件中的该工作表另存为另外的文件也不会出现这问题,不知道这到底是什么问题/
#5
你把详细的代码贴出来,并且说明详细的错误
#6
以下是以前我回答过别人的一些文字,希望对你有帮助。
经过摸索,我终于找到了方便快捷的通过jet把excel数据导出方法,我把我的一些经验写出来,希望对后人有帮助.
假设有一个excel表d:\在职职工库.xls,簿中有一个表在职职工,其中有如下数据
2002年5月职工花名册
序号 姓名 性别 民族 工资
1 张三 男 汉 800.00
2 李四 男 回 1200.00
3 张芸 女 汉 852.00
4 何天荣 男 满 962.00
现要把其中的职工数据导出到d:\zghmc.dbf.
首先用excel打开d:\在职职工库.xls,选择包含职工数据的区域,不包括标题"2002年5月职工花名册",执行"插入->名称->定义",输入zgk,为所选的数据定义一个名称,关闭excel.
如果你的excel表没有标题,完全是一个二维表,就不用定义名称,用adotable连接后设置tabledirect为true,你的excel数据库要有一个字段名,就像其它数据库一样是一个二维表.
在project中加入一个ADOConnection1、一个ADOQuery1,添加以下代码:
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\在职职工库.xls;Extended Properties=excel 8.0;Persist Security Info=False';
ADOQuery1.Connection:= ADOConnection1;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * into zghmc in "d:\" "dBASE 5.0;" from zgk' );
ADOQuery1.ExecSQL;
ADOQuery1.Close;
然后编译运行,就把excel中的职工数据导出到d:\zghmc.dbf中了。
如果要在程序中显示excel中的数据,添加一个ADOTable1,设置Connection为ADOConnection1就可以了.
经过摸索,我终于找到了方便快捷的通过jet把excel数据导出方法,我把我的一些经验写出来,希望对后人有帮助.
假设有一个excel表d:\在职职工库.xls,簿中有一个表在职职工,其中有如下数据
2002年5月职工花名册
序号 姓名 性别 民族 工资
1 张三 男 汉 800.00
2 李四 男 回 1200.00
3 张芸 女 汉 852.00
4 何天荣 男 满 962.00
现要把其中的职工数据导出到d:\zghmc.dbf.
首先用excel打开d:\在职职工库.xls,选择包含职工数据的区域,不包括标题"2002年5月职工花名册",执行"插入->名称->定义",输入zgk,为所选的数据定义一个名称,关闭excel.
如果你的excel表没有标题,完全是一个二维表,就不用定义名称,用adotable连接后设置tabledirect为true,你的excel数据库要有一个字段名,就像其它数据库一样是一个二维表.
在project中加入一个ADOConnection1、一个ADOQuery1,添加以下代码:
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\在职职工库.xls;Extended Properties=excel 8.0;Persist Security Info=False';
ADOQuery1.Connection:= ADOConnection1;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * into zghmc in "d:\" "dBASE 5.0;" from zgk' );
ADOQuery1.ExecSQL;
ADOQuery1.Close;
然后编译运行,就把excel中的职工数据导出到d:\zghmc.dbf中了。
如果要在程序中显示excel中的数据,添加一个ADOTable1,设置Connection为ADOConnection1就可以了.
#7
好东西!
#8
to dejoy(燕青):
请问zgk是怎么设置的?手工?还是由程序设置?
我的代码:
cnExcel.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + AExcelFile + ';' +
'Extended Properties=Excel 8.0;' +
'Persist Security Info=False' ;
cnExcel.LoginPrompt := false ;
try
cnExcel.Open ;
except
exit ;
end;
cnExcel.GetFieldNames(sTableName, XlsFieldList) ;
其中:1、AExcelFile为Excel文件名(包含路径);
2、sTableName为Excel文件中第一个工作表名称;
3、cnExcel为ADOConnection;
请问zgk是怎么设置的?手工?还是由程序设置?
我的代码:
cnExcel.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + AExcelFile + ';' +
'Extended Properties=Excel 8.0;' +
'Persist Security Info=False' ;
cnExcel.LoginPrompt := false ;
try
cnExcel.Open ;
except
exit ;
end;
cnExcel.GetFieldNames(sTableName, XlsFieldList) ;
其中:1、AExcelFile为Excel文件名(包含路径);
2、sTableName为Excel文件中第一个工作表名称;
3、cnExcel为ADOConnection;
#9
可能是GetFieldNames有问题吧。
还是用ADOCONNECTION获取
还是用ADOCONNECTION获取
#10
cnExcel.GetFieldNames(sTableName, listbox1.Items) ;
或
adotable1.Connection:=cnexcel;
adotable1.TableDirect:=true;
adotable1.GetFieldNames(XlsFieldList);
我不知道你的XlsFieldList是一个什么东西.
或
adotable1.Connection:=cnexcel;
adotable1.TableDirect:=true;
adotable1.GetFieldNames(XlsFieldList);
我不知道你的XlsFieldList是一个什么东西.
#11
少了一句
adotable1.TableName:='[Sheet1$]';
adotable1.TableName:='[Sheet1$]';
#12
谢谢 dejoy(燕青)
XlsFieldList :TStringList,应该没什么问题吧。现在奇怪的是,有点文件没有问题,有点文件才会出现这样的问题。真是奇怪!
另外,我想问一下,打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示,谢谢!
XlsFieldList :TStringList,应该没什么问题吧。现在奇怪的是,有点文件没有问题,有点文件才会出现这样的问题。真是奇怪!
另外,我想问一下,打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示,谢谢!
#13
to zfmich()
打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示:
去掉excel文件中的自定义宏或把相应宏进行数字签名
有点文件没有问题,有点文件才会出现这样的问题
打开excel表要求相应表第一行为字段列表
打开EXCEL文件时如何才能不出现一些是否调用宏之类的提示:
去掉excel文件中的自定义宏或把相应宏进行数字签名
有点文件没有问题,有点文件才会出现这样的问题
打开excel表要求相应表第一行为字段列表
#14
to fontain() :
“去掉excel文件中的自定义宏或把相应宏进行数字签名”
是手工实现?还是程序实现?如果是程序实现?如何处理?
打开excel表要求相应表第一行为字段列表
文件的格式都是一样的啊?
“去掉excel文件中的自定义宏或把相应宏进行数字签名”
是手工实现?还是程序实现?如果是程序实现?如何处理?
打开excel表要求相应表第一行为字段列表
文件的格式都是一样的啊?
#15
看office帮助,office有个人数字签名软件,只能用于本机。
如果第一行不识字段列表,直接用ado打开可能会有问题
如果第一行不识字段列表,直接用ado打开可能会有问题