| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4311 人关注过本帖, 3 人收藏
标题:xls工作表有表头的想导入DBF字段要如何处理一下
只看楼主 加入收藏
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
结帖率:95.24%
收藏(2)
已结贴  问题点数:20 回复次数:46 
xls工作表有表头的想导入DBF字段要如何处理一下
这个表想不要表头字段,想用第4行的做为DBF的表的字段,数据类型正常就行,不知道能不能实现,谢谢



图片附件: 游客没有浏览图片的权限,请 登录注册
信息管理.rar (6.92 KB)


[此贴子已经被作者于2021-11-13 20:10编辑过]

搜索更多相关主题的帖子: 表头 导入 字段 处理 DBF 
2021-11-13 19:27
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏(1)
得分:20 
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
xlsFile = cDefPath + "信息管理.xls"
WITH CREATEOBJECT("Excel.Application")
    .DisplayAlerts = 0
    .WorkBooks.Open(xlsFile)
    nRow = .CountA(.Range("A:A")) - 2
    nCol = .CountA(.Range("4:4"))
    arr  = .Cells(5,1).Resize(nRow,nCol).Value
    .WorkBooks.Close
    .Quit 
ENDWITH 
CREATE CURSOR tt (序号 I, 零部件代码 C(10),零部件名称 C(10),建议销售价 I,销售分类 C(10),拼音代码 C(10),单位 C(10))
INSERT INTO tt FROM ARRAY arr
SELECT * FROM tt
2021-11-13 21:19
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:0 
吹版方法简洁明了

[此贴子已经被作者于2021-11-13 21:26编辑过]

2021-11-13 21:25
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1790
专家分:3389
注 册:2012-2-29
收藏
得分:0 
回复 楼主 ls_y041
你的建议销售价一定是整数吗?若有小数呢?
2021-11-14 06:49
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
吹版主做的太好了,已实现,但还有一个问题是想实现对一个表的按内容进行分表处理的

模板.rar (6.27 KB)
这个是个导入的模板我想用VFP写出来进行数据处理但一直没有搞成功,谢谢!!

[此贴子已经被作者于2021-11-14 12:38编辑过]

2021-11-14 12:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用ls_y041在2021-11-14 12:29:47的发言:

吹版主做的太好了,已实现,但还有一个问题是想实现对一个表的按内容进行分表处理的

这个是个导入的模板我想用VFP写出来进行数据处理但一直没有搞成功,谢谢!!

不清楚具体做什么
具体说说数据处理的过程
2021-11-14 14:05
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
        COPY TO (ALLTRIM(I)+T+ ".XLS") TYPE XLS

这个模板中的SHEET1的名称必须是“销售出库明细导入”

这样可以运行,只是不太明白,速度慢了一点
LOCAL fsheet,fname,oExcel,fname1
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
xlsFile = cDefPath + "维修发料统计.xls"
WITH CREATEOBJECT("Excel.Application")
    .DisplayAlerts = 0
    .WorkBooks.Open(xlsFile)
    nRow = .CountA(.Range("A:A")) - 2
    nCol = .CountA(.Range("4:4"))
    arr  = .Cells(5,1).Resize(nRow,nCol).Value
    .WorkBooks.Close
    .Quit
ENDWITH
CREATE CURSOR tt (序号 I,经销商简称    C(10),工单号 c(12),零部件代码 C(18),零部件名称 C(30),仓库代码 C(10),库位代码 C(12),零部件数量 N(6,2),销售单价 N(6,2),零部件销售金额 N(6,2),零部件成本金额 N(6,2),车牌号 C(10),车系 C(10),领料人 C(10))
INSERT INTO tt FROM ARRAY arr
SELECT * FROM tt INTO DBF 细.dbf
  REPLACE 仓库代码 WITH Iif("TW-" $ 零部件代码, '配件仓库B', '配件仓库A') ALL
  REPLACE 工单号 WITH righ(工单号,10) all
  SELECT  序号 ,工单号,零部件代码,零部件名称,销售单价,SUM(零部件数量) as  数量,领料人,仓库代码,车牌号 FROM 细 GROUP BY 工单号,零部件代码,销售单价,领料人 ,车牌号,零部件名称 ,仓库代码,序号  INTO DBF 明细.dbf
               **     序号    经销商简称    工单号    零部件代码    零部件名称    仓库代码    库位代码    零部件数量    零部件销售单价    零部件销售金额    零部件成本金额    车牌号    车系    领料人    维修类型
SET DEFAULT TO d:\xls
SELECT DISTINCT 工单号 FROM 明细 INTO CURSOR RKD
oExcel=Createobject("Excel.application") && 打开EXCEL
oExcel.Visible=.F. && 不显示EXCEL界面
SCAN
    SELECT 序号 as 行,车牌号 as T,零部件代码 AS 项目,零部件名称 as 说明,序号 AS 套餐,序号 AS W,数量,;
    销售单价 as 含税单价,序号 as 折扣,序号 as 总计,序号 as V,序号 as P,工单号 AS I,仓库代码 as 仓库名称 ;
    FROM 明细 WHERE 工单号 == RKD.工单号 INTO CURSOR TEMP
   fsheet = ALLTRIM(I)+ALLTRIM(T) && sheet 的名称
   fname  = fsheet + ".XLS"
   COPY TO (fname) TYPE XLS
   *!* 修改Sheet1名称
   oExcel.Workbooks.Open("D:\xls\"+ fname)
   oExcel.Worksheets(fsheet).Activate && 激活sheet表格,因为导进去的名称是文件名称
   oExcel.ActiveSheet.Name="销售出库明细导入"
   oExcel.ActiveWorkbook.Save
   oExcel.Workbooks.Close

   USE IN TEMP
ENDSCAN
oExcel.Quit && 退出EXCEL


[此贴子已经被作者于2021-11-14 19:08编辑过]

2021-11-14 15:16
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:0 
* 楼上后半段程序是不是下面这个意思

scan
    ....
    copy to 销售出库明细导入.xls type xls
    rename 销售出库明细导入.xls to &fname
endscan
2021-11-14 18:02
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
结果是不对的,修改名称后sheet1的名称也修改了,不行,不能导入

[此贴子已经被作者于2021-11-14 19:28编辑过]

2021-11-14 18:56
ls_y041
Rank: 2
等 级:论坛游民
威 望:2
帖 子:176
专家分:66
注 册:2005-9-29
收藏
得分:0 
回复 6楼 吹水佬
工作流程是这样的,从一个表中把数据取出来按工单号对表中数据进行分表,以工单号为工作表的名称,每个工作表的SHEET1的名称为"销售单导入"这个不会处理了,谢谢
想再问一下如何工作表的字段顺序是变化的,要如何处理字段,就是说字段名是排序是不固定。

[此贴子已经被作者于2022-3-20 08:01编辑过]

2021-11-14 19:42
快速回复:xls工作表有表头的想导入DBF字段要如何处理一下
数据加载中...
 
   



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

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