| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1782 人关注过本帖, 1 人收藏
标题:请教excel数据导入dbf问题?
只看楼主 加入收藏
wxzd123
Rank: 2
等 级:论坛游民
帖 子:406
专家分:69
注 册:2012-9-6
结帖率:87.76%
收藏(1)
已结贴  问题点数:20 回复次数:27 
请教excel数据导入dbf问题?
Excel数据是从网上粘到表格的如图
图片附件: 游客没有浏览图片的权限,请 登录注册

Replace 字段 With excel.cells(1,1).Value
在dbf表中
图片附件: 游客没有浏览图片的权限,请 登录注册

多出不是文字的字符,请教各位老师如何解决?谢谢
搜索更多相关主题的帖子: 文字 导入 excel dbf 数据 
2023-06-15 21:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:4 
字段是C类型吧,改M类型看看
2023-06-15 21:14
wxzd123
Rank: 2
等 级:论坛游民
帖 子:406
专家分:69
注 册:2012-9-6
收藏
得分:0 
版主您好,m型也有,这些好像是网页上的一些设置,不一定是?,还有其他的,不同的网页粘回来的不一样
2023-06-16 06:48
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
回复 3楼 wxzd123
取出来看看就清楚是什么字符,通常是一些不可打印的控制符,不需要就去掉。
2023-06-16 07:02
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:4 
excel表里有不可见的字符,试试把chr(9),chr(10)去掉看看
2023-06-16 09:32
wxzd123
Rank: 2
等 级:论坛游民
帖 子:406
专家分:69
注 册:2012-9-6
收藏
得分:0 
两位版主好,目前转换后多出
图片附件: 游客没有浏览图片的权限,请 登录注册
,以前转时好像还有其他,请帮忙看一下如何去掉,现把表格上传,谢谢
l.rar (2.88 KB)

2023-06-17 21:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
excel用unicode编码,可能有些字VFP识别不了就当是?号了。
如果确定所有正常数据都不包含?号就好办,清除掉就是。
否则,就有点麻烦,要区分清楚哪些?号是不能清除的。
或者可先在excel里清除掉那些“乱码”字,下图是截取一段的unicode编码,其中A0就是那个“?”
图片附件: 游客没有浏览图片的权限,请 登录注册



2023-06-18 08:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏(1)
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
cPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cPath)
sc = CREATEOBJECT("ScriptControl")
sc.Language = "VBScript"
TEXT TO vbsCode TEXTMERGE NOSHOW PRETEXT 7
    function fun(cFile)
        dim excel
        set excel = createobject("Excel.Application")
        excel.workbooks.open(cFile)
        excel.Cells.Replace ChrW(&hA0), ""
        nRow = excel.sheets(1).UsedRange.Rows.Count
        nCol = excel.sheets(1).UsedRange.Columns.Count 
        fun = excel.Cells(1,1).Resize(nRow,nCol).Value   
        excel.ActiveWorkBook.Saved = 1
        excel.workbooks.close
        excel.quit
    end function 
ENDTEXT  
sc.AddCode(vbsCode)
arr = sc.Run("fun", cPath+"表格.xls")
CREATE CURSOR tt (f1 M)
INSERT INTO tt FROM ARRAY arr
SELECT * FROM tt
2023-06-18 10:07
wxzd123
Rank: 2
等 级:论坛游民
帖 子:406
专家分:69
注 册:2012-9-6
收藏
得分:0 
版主这也太神奇了,速度还快,有些地方看不太懂,请问如果没有安装EXCEL或WPS,判断代码写在set excel = createobject("Excel.Application")后面?
2023-06-18 15:11
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:334
专家分:810
注 册:2021-1-9
收藏
得分:4 
试试LIBXL的方式   2万记录  秒取


[此贴子已经被作者于2023-6-18 18:41编辑过]

2023-06-18 15:44
快速回复:请教excel数据导入dbf问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.097487 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved