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了,请其他高手帮帮忙。 展开
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了,请其他高手帮帮忙。 展开
2个回答
展开全部
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询