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第一行内容的方式来修改表头的名字。
使用 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请教!的主要内容,如果未能解决你的问题,请参考以下文章