PB中导出EXCEL请教!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PB中导出EXCEL请教!相关的知识,希望对你有一定的参考价值。

目前用PB做了一个小系统,字段大概有170多个,需要导出为EXCEL(目前表大概有7000多列,以后会更多),但用OLE导出时,就是一行一行往EXCEL里写很慢,请问有什么方式(就想用WEB下载一样)能一次导出来另存为就OK了,或其他快速的方法?谢谢!

复制下面的代码,粘贴到记事本里,另存为f_pbtoexcel.srf
打开你的程序,展开System tree,在library图标上右击,点击import。将刚才的f_pbtoexcel.srf导进来。
用法:双击按钮,然后在按钮的click事件里输入 f_pbtoexcel(dw_1) 即可,其中dw_1是数据窗口的名称。

global type f_pbtoexcel from function_object
end type

forward prototypes
global function integer f_pbtoexcel (datawindow adw)
end prototypes

global function integer f_pbtoexcel (datawindow adw);

integer li_rtn,ii,li_asc
string ls_name,ls_pathname
boolean lb_exist
if adw.RowCount()<1 then
MessageBox("提示信息","请先检索数据再导出至Excel!")
return -1//error
end if

ls_pathname='导出文件'
li_rtn=GetFileSaveName("保存文件",ls_pathname,ls_name,"xls","Excel文件(*.xls),*.xls","C:\My Documents")

if li_rtn=1 then
lb_exist = FileExists(ls_pathname)
IF lb_exist THEN
li_rtn = MessageBox("保存", ls_pathname+"已经存在,是否覆盖?",Exclamation!, YesNo!)
end if
if li_rtn=1 then
//当文件存在用户选择覆盖,或是文件本就不存在时。注意变量li_rtn
li_rtn=adw.SaveAsAscii(ls_pathname)

if li_rtn=1 then

int ret
OLEObject xlapp
xlApp = Create OLEObject

// Connect to Excel and check the return code
ret = xlApp.ConnectToNewObject( "Excel.Sheet" )
if ret < 0 then
MessageBox("Connect to Excel Failed !",string(ret))

end if
xlApp.Application.Workbooks.Open(ls_pathname)
xlApp.Application.Visible = true
xlapp.application.WindowState=-4137
xlapp.application.activewindow.WindowState=-4137
//MessageBox("提示信息","导出数据成功!")
else
MessageBox("错误信息","导出数据失败!")
return -1//error
end if
else
return -1//error
end if
else
return -1
end if

return 1
end function
参考技术A 如果代码是你在写的话很简单,数据窗口直接可以存成xls,txt,xml等多种形式的,你在pb帮助里搜dw_1.saveas('','',')这个就可以看到例子,常用的函数,比较少有用到.saveascii的 参考技术B 你的数据是否是在数据窗口中的?如果是数据窗口中,使用PB自带的SAVEAS功能非常快的。
举个小列子,比如有个按钮叫导出,导出窗口中dw_1数据窗口的数据
string ls_path, ls_file
integer li_rc, li_ret
li_rc = getfilesavename("选择文件",ls_path,ls_file,"XLS","Excel Files (*.xls),*.xls, *.*")
if li_rc <> 1 then return
dw_1.SaveAs(ls_path,Excel!,TRUE)追问

多谢几位!确实很快,但是为什么标头不出来?只是内容?如何让标头也出来啊?

追答

saveas是可以导出表头的,但是是以英文字段的名字导出。
你可以使用打开EXCEL然后修改EXCEL第一行内容的方式来修改表头的名字。

本回答被提问者采纳
参考技术C 用PB数据自带的函数saveas,速度很快 参考技术D 一次肯定导不出来,只能分几个表存储

使用 laravel api 在邮递员中导出 excel 文件

【中文标题】使用 laravel api 在邮递员中导出 excel 文件【英文标题】:Exporting excel file in postman with laravel api 【发布时间】:2021-02-17 02:47:16 【问题描述】:

当我尝试发送 API 请求以在邮递员中导出 excel 文件时,它会给出以下响应enter image description here

但是当我在浏览器中尝试端点时,会下载 excel 文件。

在 laravel 中测试 api 导出 excel 文件的最佳方法是什么

【问题讨论】:

【参考方案1】:

看到这个: enter link description here

发出请求时,请尝试选择发送和下载,而不是发送。 (蓝色按钮)

https://www.getpostman.com/docs/responses

“对于二进制响应类型,您应该选择发送和下载,这样您就可以将响应保存到硬盘。然后您可以使用适当的查看器查看它。”

【讨论】:

以上是关于PB中导出EXCEL请教!的主要内容,如果未能解决你的问题,请参考以下文章

vue2中导出带有图片的excel表格

pb 导出到excel问题

Delphi中导出数据到excel

PHP中导出Excel,将数据以Excel形式导出

Excel 在 CSV 导出中导出数百个空列

SpringMVC中导出Excel文件,关于弹出一个选择框,选择导出Excel文件的路径项目细节