标题:导出EXCEL表时的粘贴问题
只看楼主
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
回复 10楼 xuminxz
感谢回复。
CSV是记录限制要好许多,但是格式总会出现问题,比如:身份证号、条形码等都变成科学计数了,纯数字内容的字符型字段(如商品代码),也变成数值型了,日期时间字段的秒被截断了,等等
copy to test type csv 时,有什么办法可以指定列的格式吗?


[此贴子已经被作者于2021-8-25 15:22编辑过]

2021-08-25 15:20
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
回复 11楼 laowan001
不要直接打开。建立一个空表,“自文本文件导入”格式可以设置。






[此贴子已经被作者于2021-8-25 18:08编辑过]


dBase有人接盘了。
2021-08-25 17:43
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
回复 12楼 xuminxz
感谢回复。
手工这样做没问题,我是需要用程序的方法实现
2021-08-25 19:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:3 
以下是引用laowan001在2021-8-25 19:45:37的发言:

感谢回复。
手工这样做没问题,我是需要用程序的方法实现

录制宏,再用VFP控制EXCEL的方法实现

坚守VFP最后的阵地
2021-08-25 21:44
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
回复 14楼 sdta
如何“录制宏”?请指教
2021-08-26 08:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用laowan001在2021-8-26 08:33:01的发言:

如何“录制宏”?请指教

百度

坚守VFP最后的阵地
2021-08-26 13:19
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
回复 16楼 sdta
感谢提示。
是我没关注过这个,在VFP帮助里发现了这个

你可以在 Visual FoxPro 中通过 宏对话框 来录制 按键宏。
若要录制宏:
从工具菜单,选择宏。
在宏对话框中,选择录制。
按下该键或输入需要定义的组合键。
输入宏名称或接受其默认值,然后选中确定。

可我需要的是用程序的方法实现,这个是通过菜单手工执行的,还是没解决问题。

还是感谢了
2021-08-26 15:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 17楼 laowan001
上传相关数据看看

坚守VFP最后的阵地
2021-08-28 03:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 楼主 laowan001
以前有讨论过使用_VFP.DataToClip的贴:https://bbs.bccn.net/viewthread.php?tid=485489&extra=&highlight=EVALUATE&page=3
觉得也可以试试将数据放到数组,再将数组整块写入EXCEL
程序代码:
CREATE CURSOR 测试表 (编号 C(10), 入库单号 C(7), 入库日期 D, 物料名称 C(20), 数量 I,;
    单价 N(14,2), 单位 C(8), 规格 C(30), 付款 L, 日期时间 T, 备注 M)
FOR i=1 To 10
    INSERT INTO 测试表 VALUES (PADL(i,10,"0"), 'C'+PADL(i,6,'0'), {^2018-03-01}+INT(RAND()*10),;
         '物料'+PADL(i,3,'0'), INT(RAND()*1000), RAND()*10, '', '"测试双引号AB"CD"',;
         IIF(i%2=0,.t.,.f.), DATETIME(), '"备注_"'+TRANSFORM(i)+'"'+0h0D0A+'_'+TRANSFORM(i)+'"'+0h0D0A)
ENDFOR
SELECT * FROM 测试表 INTO ARRAY arr

sc = CREATEOBJECT("ScriptControl")
sc.Language = "VBScript"
TEXT TO cCode TEXTMERGE NOSHOW PRETEXT 7
    FUNCTION fun(vfpArray)
        dim oExcel,oRange
        set oExcel = CREATEOBJECT("Excel.Application")
        oExcel.Workbooks.Add
        set oRange = oExcel.ActiveSheet.Range(oExcel.Cells(1,1),oExcel.Cells(UBound(vfpArray,1),UBound(vfpArray,2)))
        oRange.Value = vfpArray
        oRange.Columns.AutoFit
        oExcel.Visible = 1
    END FUNCTION 
ENDTEXT  
sc.AddCode(cCode)
sc.Run("fun",@arr)
2021-09-07 16:53
xcy524100
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2021-8-8
得分:0 
回复 楼主 laowan001
如果打开的excel进程多了有时候会出错,因为你用.close方法在VFP里关闭工作簿,但在系统进程中还会一直有excel进程,一个文件一个进程,会出现超多进程,占用大量内存,如果工作簿处理完后建意用dos命令kill 杀死进程。用   !(dos命令)[参数]
2021-09-07 23:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506638-1-1.html




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

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