VB6.0如何将查询出来显示到DataGrid的数据,导入到已经设计好的Excel模板文件?
VB6.0如何将查询出来显示到DataGrid的数据,导入到已经设计好的Excel模板文件?VB6.0如何将查询出来显示到DataGrid的数据,导入到已经设计好的Exc...
VB6.0如何将查询出来显示到DataGrid的数据,导入到已经设计好的Excel模板文件?VB6.0如何将查询出来显示到DataGrid的数据,导入到已经设计好的Excel模板xlt文件,其实自己已经能导出,但是就是会覆盖原Excel模板的原设计的列标题,还有就是有些日期数据(比如2016-8-19这种格式的数据)导入到Excel后就变成4583了,有些少数也能正常导出,这是怎么回事?请问什么代码才能将DataGrid的第二行开始,导入也从Excel模板的第二行开始?麻烦能附上代码,谢谢!
展开
3个回答
推荐于2017-09-01 · 知道合伙人数码行家
关注
展开全部
EXCEL文件要设置固定格式,还要设置命名范围,然后才可以导入
大致思路如下:
'// 设置打开 EXCEL 文件的连接字符串
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=excel文件名;Extended Properties=Excel 8.0"
'// 以记录集的形式打开 Excel 文件,adoConn 为 ADODB.Connection 对象
adoConn.Open strConn
'// 将数据插入到指定的表中(以ODBC的方式打开SQL数据库)
strSQL = "INSERT INTO [odbc;Driver={SQL Server};Server=服务器IP;Database=数据库;UID=用户名;PWD=密码].SQL中的表名 SELECT EXCEL中的字段 FROM EXCEL工作表名"
'// 执行导入语句
adoConn.Execute strSQL, , adExecuteNoRecords
大致思路如下:
'// 设置打开 EXCEL 文件的连接字符串
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=excel文件名;Extended Properties=Excel 8.0"
'// 以记录集的形式打开 Excel 文件,adoConn 为 ADODB.Connection 对象
adoConn.Open strConn
'// 将数据插入到指定的表中(以ODBC的方式打开SQL数据库)
strSQL = "INSERT INTO [odbc;Driver={SQL Server};Server=服务器IP;Database=数据库;UID=用户名;PWD=密码].SQL中的表名 SELECT EXCEL中的字段 FROM EXCEL工作表名"
'// 执行导入语句
adoConn.Execute strSQL, , adExecuteNoRecords
展开全部
两种方法:
1
2
1、cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
2、bulk insert td2 from 'e:\temp1.txt' with ( FIELDTERMINATOR ='\t',ROWTERMINATOR ='\n')
这两种方式都是很快,而且是导进,导出都可以用;几十W的数据几秒搞定,但是涉及到的数据库是微软的SQL数据库,我没有看懂你语句是从哪里导呢?而且用上面的语句;连接方式与你的也不一样;
下面把自己以前整理学习的这两种方式说明如下:
-把查寻结果导出到指定文件中-已测试
EXEC master..xp_cmdshell'bcp "select * from databasetest.dbo.gsm" queryoutf:\temp1.txt -c -q -S"." -U"sa" -P"30687724"'
--从数据库导出到指定表-已测试
EXEC master..xp_cmdshell'bcp databasetest..123 outE:\test.xls -c -q -S"." -U"sa" -P"30687724"'
1、指定表如果已存在将在里导入数据,但无列名,不存在将追加
2、指定表如果为EXCEL2007将不能用EXCEL2007直接打开,必须用TXT打开。
3、指定表好像也变为TXT格式,但是是用EXCEL2003打开。
4、如果导出格式为数据库mdb或accdb都不能打开的
5、指定表如果第一次导入后,在继续第二次导入,原数据将替换。如果想不替换,只能用SQL的手动<a href="https://www.baidu.com/s?wd=%E5%AF%BC%E5%85%A5%E5%AF%BC%E5%87%BA&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHcvrjTdrjb0T1dBujfYm1wBmyDzPhwhn1Dv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPHmLPWczP1Rs" target="_blank" class="baidu-highlight">导入导出</a>方法
6、可以导出到CSV格式,但也一样要用TXT打开,如果直接用CSV打开很难分裂
bulk insert td2 from 'e:\temp1.txt' with ( FIELDTERMINATOR ='\t',ROWTERMINATOR ='\n')
1、一样只能导入TXT文件
2、EXCEL存为TXT默认字段与行符为 \t,\n
3、导入TXT的时候最好把原来第一行的字段列删了,不然要出现转换错误。如果不想删可以使用FIRSTLOW命令来规定从第几行导入;
1
2
1、cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
2、bulk insert td2 from 'e:\temp1.txt' with ( FIELDTERMINATOR ='\t',ROWTERMINATOR ='\n')
这两种方式都是很快,而且是导进,导出都可以用;几十W的数据几秒搞定,但是涉及到的数据库是微软的SQL数据库,我没有看懂你语句是从哪里导呢?而且用上面的语句;连接方式与你的也不一样;
下面把自己以前整理学习的这两种方式说明如下:
-把查寻结果导出到指定文件中-已测试
EXEC master..xp_cmdshell'bcp "select * from databasetest.dbo.gsm" queryoutf:\temp1.txt -c -q -S"." -U"sa" -P"30687724"'
--从数据库导出到指定表-已测试
EXEC master..xp_cmdshell'bcp databasetest..123 outE:\test.xls -c -q -S"." -U"sa" -P"30687724"'
1、指定表如果已存在将在里导入数据,但无列名,不存在将追加
2、指定表如果为EXCEL2007将不能用EXCEL2007直接打开,必须用TXT打开。
3、指定表好像也变为TXT格式,但是是用EXCEL2003打开。
4、如果导出格式为数据库mdb或accdb都不能打开的
5、指定表如果第一次导入后,在继续第二次导入,原数据将替换。如果想不替换,只能用SQL的手动<a href="https://www.baidu.com/s?wd=%E5%AF%BC%E5%85%A5%E5%AF%BC%E5%87%BA&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHcvrjTdrjb0T1dBujfYm1wBmyDzPhwhn1Dv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPHmLPWczP1Rs" target="_blank" class="baidu-highlight">导入导出</a>方法
6、可以导出到CSV格式,但也一样要用TXT打开,如果直接用CSV打开很难分裂
bulk insert td2 from 'e:\temp1.txt' with ( FIELDTERMINATOR ='\t',ROWTERMINATOR ='\n')
1、一样只能导入TXT文件
2、EXCEL存为TXT默认字段与行符为 \t,\n
3、导入TXT的时候最好把原来第一行的字段列删了,不然要出现转换错误。如果不想删可以使用FIRSTLOW命令来规定从第几行导入;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是单元格设置的格式有误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |