| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2986 人关注过本帖
标题:如何从数组向EXCEL添加数据?
取消只看楼主 加入收藏
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
结帖率:94.59%
收藏
已结贴  问题点数:20 回复次数:15 
如何从数组向EXCEL添加数据?
wengjl版说:有想法,就会有办法我又有新想法了,只是没有办法,特来求办法!

从招生计划库zsjh.dbf中把符合条件的计划导出到表AA.dbf,然后copy to BB.xls,再对BB.xls进行字体、字号等格式设置。因为每次都要对格式进行设置,比较浪费时间。我就想,先做好一个固定格式的表头,再把BB.xls的内容复制、粘贴到表头文件,这样应该更快一点。
有关代码是:
COPY TO BB.xls
oExcel=Createobject("Excel.application")
oExcel.Workbooks.Open("BB.xls")
oExcel.ActiveSheet.UsedRange.Copy
oExcel.Workbooks.Open("表头模板.xlsx")
oExcel.activesheet.Range("A3").PasteSpecial
这样,数据是可以拷过来的,但与表头模板.xlsx的格式不一样。我想,问题可能出在最后一名粘贴,应该有个参数“匹配目标单元格格式”。请问:PasteSpecial是否有参数?有的话,“匹配目标单元格格式”的参数是什么?
这种复制、粘贴的办法还会带来一个问题,就是提示“图片太大,超过部分将被截去”,目前也还没找到合适的解决方法。

另一种想法,就是把BB.xls的内容读入数组,然后从数组向表头模板.xlsx添加数据。添加后同样要保留表头模板的原格式。请问:如何从数组添加数据并匹配目标单元格格式?
谢谢!
附件.rar (81.58 KB)

搜索更多相关主题的帖子: xls 格式 添加 数据 数组 
2021-03-26 15:03
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
谢谢SDTA!
AA.rar (86.94 KB)
2021-03-26 15:17
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
谢谢!我测试一下,等会汇报结果!
2021-03-26 16:54
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
向SDTA汇报一下:总的来说非常成功,基本达到了要求!还有点小问题:
1.院校代码、专业代码都是文本,复制过来后成了数值型,前面的0丢失,如0001变成了1。
2.省份、城市、学制、本专科等文本后面多了若干空格。
3.备注和参考信息二个备注型字段的内容没复制过来。

再次请求办法
(表中多出一列,是我没来得及删掉)

理化生23452.rar (139.62 KB)


[此贴子已经被作者于2021-3-27 10:41编辑过]

2021-03-27 10:36
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
我现在把BZ和CKXX两个字段内容读入数组,然后用个循环,把备注内容写入到EXCEL。虽然能达到目的,但又循环一次,效率肯定打折扣。如果备注内容能和其他内容一起直接复制就好了。
2021-03-27 11:35
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
以下是引用wengjl在2021-3-26 15:39:18的发言:

你的另一种想法
不需要生成BB.XLS。只要打开模板,然后将AA.DBF中的数据一个一个写入即可。最后将模板表另存为…

试了一下,从数组中一个个读入,可以读取备注内容,但速度慢很多。字符串后面的空格还是存在。能不能不一条条,而是批量读取?

[此贴子已经被作者于2021-3-27 16:48编辑过]

2021-03-27 16:39
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
从数组读取的方案放弃了,还是采用sdta的代码。0丢失的问题,通过在模板中相应列设为文本,解决了。
现在最大的问题是字符串后面的空格如何解决?初步想法是将_cliptext的内容导出到文本,然后替换空格,再重新放回剪贴板,然后粘贴。但代码没搞定
再次求助!
2021-03-28 00:24
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
空格替换解决了。文本格式现在是在模板中设定的,不知为何在程序中设定不起作用?
WITH oExcel
    .WorkBooks.Open("&lj\表头模板.xlsx")
    .ActiveSheet.column(1).NumberFormatLocal="0000"  &&这句没起作用
    .ActiveSheet.Cells(3,1).PasteSpecial
    .ActiveSheet.cells.replace(" ","")
endwith
2021-03-28 10:58
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
谢谢sdta,你终于出现了
测试结果汇报如下:
从18000多条记录中,筛选出符合条件的6750多条记录,然后对ECCEL表进行整理,到最后完成,总耗时1分10秒,其中执行上述
oExcel = CreateObject("Excel.Application")
......
ENDWITH
之间的代码,耗时1分07秒。
可见,对DBF表本身进行操作是很快的,但VFP控制EXCEL操作非常耗时。
执行_VFP.DataToClip("cx", RECCOUNT(), 3)的时候,如果能把备注内容一起剪切,那速度将有极大提升。
我相信,您肯定能想出解决办法并教我谢谢谢谢!!!
2021-03-28 12:01
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
好的
附件.rar (471.13 KB)


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

2021-03-28 12:32
快速回复:如何从数组向EXCEL添加数据?
数据加载中...
 
   



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

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