PB数据窗口数据导出到Excel脚本需求。 200

存在问题:(数据窗口名称为dw_1)1、18位数字从数据窗口导出Excel后,后4位小数变成0000了。2、以文本形式存在的数字(如01234)导出Excel后,变成了1... 存在问题:(数据窗口名称为dw_1)
1、18位数字从数据窗口导出Excel后,后4位小数变成0000了。
2、以文本形式存在的数字(如01234)导出Excel后,变成了1234。
脚本需求。
1、18位数字可准确导出。
2、以文本形式存在的数字(如01234)导出后仍显示为01234)。
3、导出时,如未安装Excel则给予提示。
4、导出的路径默认是桌面(注意不同的电脑桌面的路径可能不同)。
5、导出的数据保留中文标题。
6、成功导出后提示“导出Excel成功,共导出***条记录。”,失败则提示“导出Excel失败”。。
7、导出的Excel不得出现提示“可能含有与文本文件(制表符分隔)不兼容的功能。是否保持工作簿的这种格式。”
8、导出的数据的列宽均为指定的列宽(在脚本中控制,列宽值可自由修改)。
9、导出时,如已存在同名Excel则提示是否替换。
一楼的解决不了问题,导出身份证号码最后三位小全变成0了,请其他高手帮帮忙。
展开
 我来答
baitulover
2010-11-23 · TA获得超过1839个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:222万
展开全部
long numcols , numrows , c, r
OLEObject xlapp , xlsub
int ret,coli
string colname,colname1

numcols = long(dw_data.Object.DataWindow.Column.Count)
numrows = dw_data.RowCount()

xlApp = Create OLEObject

ret = xlApp.ConnectToNewObject( "Excel.application" )
if ret < 0 then
MessageBox("Connect to Excel Failed !",string(ret))
return
end if

xlApp.Application.Workbooks.add()

xlApp.Application.Visible = true

xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]

string colnum //判断是A、B...或AA、AB...还是BA、BB、BC...
if integer(numcols) > 26 then
string colnumd,colnumd1
int numcols1,numcols2
numcols1 = mod(numcols,26)
numcols2 = numcols / 26
colnumd = char(numcols1 + 96)
colnumd1 = char(numcols2 + 96)
colnum ="'" + colnumd1 + colnumd + "'"
else
colnum = char(numcols + 96)
end if

xlsub.cells[1,1] = tabname //标题
xlsub.cells[1,1].HorizontalAlignment = 3
xlsub.cells[1,1].VerticalAlignment = 3
xlsub.cells[1,1].Font.Size = 20
xlsub.range("a1:" + colnum + "1").Merge()

string ls_colname
integer i
for i = 1 to numcols
//得到标题头的名字
ls_colname = dw_data.describe('#' + string(i) + ".name") + "_t"
xlsub.cells[2,i] = dw_data.describe(ls_colname + ".text")
next
//画表格线
string ls_range
ls_range = "A2:" + colnum + Trim(string(numrows+2))
xlsub.range(ls_range).borders(1).linestyle = 1
xlsub.range(ls_range).borders(2).linestyle = 1
xlsub.range(ls_range).borders(3).linestyle = 1
xlsub.range(ls_range).borders(4).linestyle = 1
//将数据写到EXECL
For c = 1 to numcols
For r = 1 to numrows
xlsub.cells[r + 2,c] = dw_data.object.data[r,c]
Next
Next

xlapp.Application.ActiveWorkbook.saved = false

xlApp.DisConnectObject()
Destroy xlapp
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
nicety_zl
2010-11-25 · TA获得超过200个赞
知道答主
回答量:156
采纳率:0%
帮助的人:0
展开全部
我不是来回答问题的。

我是来蹭分的。

你的问题太难,反正分也收不回来,有人答的上你就把分给他吧。

如果没人答的上。就把分给我吧。

这么多分浪费了怪可惜的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式