pb与excel之间导入导出处理

合集下载

pb导出excel(直接导出)

pb导出excel(直接导出)

基本操作:Ole_object.Workbooks.add//新建一个Excel文件Ole_object.Workbooks.Open("FileNam e")//打开一个已存在Excel文件Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表Ole_object.Application.Run("MacroName")//运行宏Ole_object.Application.Visible=TRUE//Excel文件可见Ole_object.Application.ScreenUpdating=true//设置可见属性②格式设置Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高Ole_object.Application.StandardFont="ArialNarrow";//设置字体Ole_object.Application.StandardFontSize="8"//设置字号Ole_object.ActiveSheet.Font.Size="8"//设置字号Ole_object.ActiveSheet.Font.Bold=True//粗体Ole_object.ActiveSheet.Font.Italic=True//斜体Ole_object.ActiveSheet.Font.Underline=True//下划线Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上Ole_object.ActiveSheet.cells(2,1)=’黑体’//设置字体Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小③工作区域操作:Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。

PB操作Excel文件

PB操作Excel文件

PB调用EXCEL的操作不失为一种好的报表输出方式2009-05-15 23:17 928人阅读评论(0) 收藏举报对于较为中国化的报表,虽然后dw这个坚强后盾,但是也难不住繁复疲劳的应对。

不过我们可以知道,数据的输出,都是居于table的栏位或者计算字段。

只是很多统计的模式和展现模式不同。

我在一年前作完一个系统,可是客户几乎隔三差五有新的东东要输出报表。

终于我发现。

让客户先在excel里弄好,然后再写程序来输出也是一个不错的方法。

关键是,客户给的东西不必要再进自己的系统,所以数据不会发生什么问题。

如果本身软件有任何问题,那能从excel里的写的结果很容易看得出来。

虽然写excel表格要花很多时间,但是减少了输入导入和输出的一些麻烦。

转载excel操作大全:powerbuilder操作excel命令大全(例子的有些地方不对!)2006-12-04 16:431.创建Excel对象eole=CREATEOBJEC T(′Excel.application′)2.添加新工作簿eole.Workbooks.add3.设置第3个工作表为激活工作表eole.Worksheets(″sheet3″).Activate4.打开指定工作簿eole.Workbooks.Open(″c:/temp/ll.xls″)5.显示Excel窗口eole.visible=.t.6.更改Excel标题栏eole.Caption=″VFP应用程序调用Microsoft Excel″7.给单元格赋值eole.cells(1,4).value=XM(XM为数据库字段名)8.设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=59.设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035(设定行高为1厘米,1磅=0.035厘米)10.在第18行之前插入分页符eole.Worksheets(″Sheet1″).Rows(18).P ageBreak=111.在第4列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=313.设置四个边框线条的类型eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉eole.ActiveSheet.PageSetup.CenterHeader=″报表1″15.设置页脚eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″16.设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.03517.设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.035 19.设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.035 20.设置左边距为2厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.035 21.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.035 22.设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t. 23.设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=.t. 24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11) eole.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷贝整个工作表edRange.Copy27.拷贝指定区域eole.ActiveSheet.Range(″A1:E2″).Copy28.粘贴eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial 29.在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert31.设置字体eole.ActiveSheet.Cells(2,1)=″黑体″32.设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=25 33.设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t. 34.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t. 35.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents 36.打印预览工作表eole.ActiveSheet.PrintPreview37.打印输出工作表eole.ActiveSheet.PrintOut38.工作表另为eole.ActiveWorkbook.SaveAs(″c:/temp/22.xls″) 39.放弃存盘eole.ActiveWorkbook.saved=.t.40.关闭工作簿eole.Workbooks.close41.退出Exceleole.quit42 合并string worksheet,beginRowcol,EndRowColMyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Select MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Merge43 sheet改名MyOLE.ActiveWorkBook.Sheets(olename).selectMyOLE.ActiveWorkBook.Sheets(olename).name=newnameMyOLE=Create OLEObjectConnectErr=MyOLE.ConnectToNewObject ("excel.Application")MyOLE.visible=false//打开指定的XLS文件激活workbooksMyOLE.application.workbooks.Open (FilePath)//对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。

PB对excel的操作

PB对excel的操作

Pb中对Excel文件的应用Oleobject ole_object//建立OLE对象ole_object=create oleobject//创建对象integer li_retli_ret=ole_object.connecttoobject( " ", "Excel.Application ")//建立连接if li_ret <> 0 then//如果Excel还没有打开,则新建。

li_ret=ole_object.ConnectToNewObject( "Excel.Application ")if li_ret <> 0thenmessagebox( "OLE错误", "OLE无法连接!错误号:"+string(li_ret))returnend ifole_object.Visible=trueend ifpointer oldpointer//设置鼠标oldpointer=setpointer(HourGlass!)ole_object.Workbooks.Add//新建工作薄ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示ole_object.Application.Workbooks.Open(as_exccccccccccccccccccccccccccccccccccel_filename)/ /打开Excel文件//ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为//Text文件,第二参数表示数据以制表符TAB分隔ole_object.Application.Quit()//退出Excelole_object.activeworkbook.saved=true//放弃存盘ole_object.workbooks.close//关闭工作簿ole_object.Cells(1,1).Value=reptitleole_object.Range( 'A1 ').Selectole_object.Selection.Font.Size=24ole_object.selection.HorizontalAlignment=3//水平对齐方式:ole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Selectole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Mergeole_object.Columns(i).ColumnWidth=ld_widthole_object.Columns(i).HorizontalAlignment=3ole_object.Columns(i).Borders.LineStyle=1ole_object.Columns(i).Font.Bold=Trueole_object.cells(i,j).NumberFormat= "@ "ole_object.cells(i,j).Font.Bold=falseole_object.cells(i,j).value=ls_valueOLE_edRange.Rows.CountSheets.Add基本操作:Ole_object.Workbooks.add//新建一个Excel文件Ole_object.Workbooks.Open( "FileName ")//打开一个已存在Excel文件Ole_object.ActiveWorkBook.Sheets( "SheetName ").Select//选择文件中一个工作表Ole_object.Application.Run( "MacroName ")//运行宏Ole_object.Application.Visible=TRUE//Excel文件可见Ole_object.Application.ScreenUpdating=true//设置可见属性②格式设置Ole_object.ActiveSheet.Columns( "A:U ").AutoFit//列宽自动调整Ole_object.ActiveSheet.Columns( "A:Z ").ColumnWidth=6.75//列宽Ole_object.ActiveSheet.Rows( "1:100 ").RowHeight=12//行高Ole_object.Application.StandardFont= "ArialNarrow ";//设置字体Ole_object.Application.StandardFontSize= "8 "//设置字号Ole_object.ActiveSheet.Font.Size= "8 "//设置字号Ole_object.ActiveSheet.Font.Bold=True//粗体Ole_object.ActiveSheet.Font.Italic=True//斜体Ole_object.ActiveSheet.Font.Underline=True//下划线Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上Ole_object.ActiveSheet.cells(2,1).f =‟黑体‟//设置字体Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小③工作区域操作:Ole_object.ActiveSheet.Range( "A1:Z10 ").Property=value//设置一个工作区域内的属性值Ole_object.ActiveSheet.Range( "A1:Z10 ").Merge//合并单元格Ole_object.ActiveSheet.Range( "A1:Z10 ").WrapText=False//自动换行禁止Ole_object.ActiveSheet.Range( "A1:Z10 ").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。

在PB中导出Excel表

在PB中导出Excel表

在PB中导出Excel表关于在PB中导出Excel表的问题应该是个老问题了,大家讨论了不知道有多少年了,今天我也遇到了这个问题,上网找了半天大家说什么的都有。

总结了一下,把我看到的都贴出来,呵呵。

一.// ... Init docname// ... GetFileOpenName or any other methodif dw_1.SaveAs(docname, HTMLTable!, True) = -1 thenMessageBox("Warning", "Unable to export data. Error writing to file!", Exclamation!)returnend if// Convert HTML file to Excel native formatOLEObject excelexcel = CREATE OLEObjectif excel.ConnectToObject(docname) = 0 thenexcel.application.DisplayAlerts = FALSEexcel.application.workbooks(1).Parent.Windows(excel.application.workb ooks(1).Name).Visible = Trueexcel.application.workbooks(1).saveas(docname, 39)excel.application.workbooks(1).close()end ifDESTROY excel// done二.支持导出分组带、合计带,并且支持多层嵌套报表导出,基本是所见及所得。

///////////////////////////////////////////////////////////////////// ////////// Parameters : ad_dw : datawindow// as_file : file name// Returns : true/false : boolean// Description : Save the datawindow as a excel file./////////////////////////////////////////////////////////////////////// //////// author : purplekite// date : 2003-01-23///////////////////////////////////////////////////////////////////////////SetPointer(HourGlass!)//declare the local variableslong i, j, li_posstring ls_objects, ls_obj, ls_text, ls_err, ls_sqldatastore lds_saveas //导出数据窗datastore lds_sort //获得根据 object.x 排序的 (band = detail and visible = 1) 的 column/computeboolean lb_return //返回值string ls_pbver //pb 版本信息environment env //环境变量getenvironment(env)ls_pbver = string(env.pbmajorrevision)//创建排序列 datastorelds_sort = create datastorels_sql = 'column=(type=char(1) name = ztext dbname="ztext" )' + '~r~n' + &'column=(type=char(1) name = zcol dbname="zcol" )' + '~r~n' + &'column=(type=long name = zx dbname="zx" )' + '~r~n'ls_sql = 'release ' + ls_pbver + ';~r~ntable(' + ls_sql + ')'lds_sort.create(ls_sql, ls_err)if len(ls_err) > 0 thenlb_return = falsegoto lab1end if//准备数据====================================================//all controlsls_objects = ad_dw.Describe("datawindow.objects")//按~t位置作判断开始循环do while (pos(ls_objects,"~t") > 0)li_pos = pos(ls_objects,"~t")ls_obj = left(ls_objects,li_pos - 1)ls_objects = right(ls_objects,len(ls_objects) - li_pos)//(column or compute ) at detail and visibleIF (ad_dw.Describe(ls_obj+".type") = "column" or &ad_dw.Describe(ls_obj+".type") = "compute" ) AND &(ad_dw.Describe(ls_obj+".band") = "detail" ) AND &(ad_dw.Describe(ls_obj+".visible") = "1" ) THENls_text = ad_dw.describe(ls_obj + '_t.text')if ls_text <> '!' and ls_text <> '?' thenlds_sort.insertrow(0)lds_sort.setitem(lds_sort.rowcount(), 'ztext', ls_text)lds_sort.setitem(lds_sort.rowcount(), 'zcol', ls_obj)lds_sort.setitem(lds_sort.rowcount(), 'zx', long(ad_dw.describe(ls_obj + '.x')))end ifEND IFloop//the last controlls_obj = ls_objectsIF (ad_dw.Describe(ls_obj+".type") = "column" or &ad_dw.Describe(ls_obj+".type") = "compute" ) AND &(ad_dw.Describe(ls_obj+".band") = "detail" ) AND &(ad_dw.Describe(ls_obj+".visible") = "1" ) THENls_text = ad_dw.describe(ls_obj + '_t.text')if ls_text <> '!' and ls_text <> '?' thenlds_sort.insertrow(0)lds_sort.setitem(lds_sort.rowcount(), 'ztext', ls_text)lds_sort.setitem(lds_sort.rowcount(), 'zcol', ls_obj)lds_sort.setitem(lds_sort.rowcount(), 'zx', long(ad_dw.describe(ls_obj + '.x')))end ifEND IF//如果没有列则跳出if lds_sort.rowcount() < 1 then goto lab1//根据 object.x 排序lds_sort.setsort('zx A')lds_sort.sort()//创建导出 datastorelds_saveas = create datastorels_sql = ''for i = 1 to lds_sort.rowcount()ls_obj = lds_sort.getitemstring(i, 'zcol')ls_sql += 'column=(type=char(1) dbname="' + ls_obj + '" )' + '~r~n' nextls_sql = 'release ' + ls_pbver + ';~r~ntable(' + ls_sql + ')'lds_saveas.create(ls_sql, ls_err)if len(ls_err) > 0 thenlb_return = falsegoto lab1//向 lds_saveas 中写数据for i = 1 to ad_dw.rowcount()yield()//释放消息队列, 如果数据量较大, 可以使用这个函数lds_saveas.insertrow(0)for j = 1 to lds_sort.rowcount()ls_obj = lds_sort.getitemstring(j, 'zcol')if ad_dw.describe(ls_obj + '.type') = 'column' thenls_text = ad_dw.describe('evaluate(~'LookUpDisplay(' + ls_obj + ')~', ' + string(i) + ')')elsels_text = ad_dw.describe('evaluate(~'' + ls_obj + '~',' + string(i) + ')') end iflds_saveas.setitem(i, j, ls_text)nextnextlds_saveas.insertrow(1)for i = 1 to lds_sort.rowcount()lds_saveas.setitem(1, i, lds_sort.getitemstring(i, 'ztext'))next//准备数据完毕====================================================//saveas datawindowlb_return = (lds_saveas.saveas(as_file, excel!, false) = 1)lab1:destroy lds_sortdestroy lds_saveasSetPointer(Arrow!)return lb_return支持导出分组带、合计带,并且支持多层嵌套报表导出,基本是所见及所得。

PB导出导入EXCEL

PB导出导入EXCEL

dw_1.saveas('c:\a.xls',excel!,true) 最后参数为FALSE ,不保存表头保存到指定文件string str_savename,namedint excelok,li_netoleobject excelserverexcelserver=create oleobjectexcelok=excelserver.connecttonewobject("excel.application")//检查返回值,以确保已成功地连接到了Excelif excelok <> 0 thenmessagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!") returnend if 可以没有if GetFilesaveName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls") = 1 then dw_main.saveas(str_savename,excel!,true)elsemessagebox("","保存失败")end if打开指定文件string str_savename,namedint excelok,li_netoleobject excelserverexcelserver=create oleobjectexcelok=excelserver.connecttonewobject("excel.application")//检查返回值,以确保已成功地连接到了Excelif excelok <> 0 thenmessagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!") returnend ifli_net = GetFileopenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls")if li_net > 0 thenif str_savename = "" then returnexcelserver.workbooks.open(str_savename)excelserver.activesheet.cells.copydw_main.importclipboard(2) //导入数据dw_1是数据窗口名字,改成你的名字clipboard("")excelserver.quit()excelserver.disconnectobject()destroy excelserverend if。

将PB数据窗口中的数据导出到EXCEL文件

将PB数据窗口中的数据导出到EXCEL文件

PB】将PB数据窗口中的数据导出到EXCEL文件我设计中只用过两种方法。

第一种:导出到默认的路径(代码中固定好的)。

核心代码是:long dwcontrol.SaveAsAscii(string filename,[string separatorcharacter(可选项,以该种格式来分隔数据,如果省略则默认为tab,)],)实例如下:if dw_1.saveasascii("C:\缺陷查询结果.xls"," ","")=1 thenmessagebox("提示信息","数据导出成功!! 文件路径为C:\缺陷查询结果.xls!")elsemessagebox("提示信息","数据导出失败!")end if第二种:这种方法要事先在指定路径建立起要导出的EXCEL文件。

下面代码是打开该文件并保存进去。

long numcols,numrows,c,rOLEObject xlapp,xlsubint ret//定义变量numcols=long(dw_1.Object.DataWindow.Column.Count)//设置行号和列号numrows=dw_1.RowCount()//获得行数xlApp=Create OLEObject//创建OLE对象ret=xlApp.ConnectToNewObject("Excel.Sheet")if ret<0 thenmessagebox("连接Excel程序失败!",string(ret))returnend if//连接Excel,并检验返回值xlApp.Application.Workbooks.Open("C:\缺陷查询结果.xls") //打开一个特定的Excel文件xlApp.Application.Visible=true//使该Excel文件可视xlsub=xlApp.Application.ActiveWorkbook.Worksheets[1]//确定第一个工作薄for c=1 to numcolsfor r=1 to numrowsxlsub.cells[r,c]=dw_1.object.data[r,c]nextnext//循环发送数据xlApp.DisConnectObject()Destroy xlApp。

PB操作Excel详解

PB操作Excel详解

run("notpad.exe") ////pb 运行记事本run("calc.exe") ////pb运行计算器记住:当我们用PB导出数据到EXCEL时,不管是用Saveas 还是clipboard 它输出的数据是定义了字段类型的列的数据,也就是说,不管列是可见还是不可见,只要该列定义了列属性,在查询时主缓冲区中该列有数据,则就会导出出来~用方法得到列名或其他属性也是一样的~及时隐藏了也可以得到当中间的某列给隐藏时,下次打开后它会显示在末尾的位置,但是用Saveas输出数据时,不管它是否隐藏,是否改变了位置,它仍可输出数据而且位置还是不变的~也就是说没有改变数据窗口对象的源,数据窗口对象上显示的列位置只会影响我们在程序界面上看到的位置,而不会影响它在后台存储的实际位置。

但是这样会改变界面显示的位置,记住,没有改变源如何用PB程序在excel画表格边框线,如何改变文字大小1.创建Excel对象eole=CREATEOBJECT(′Excel.application′)2.添加新工作簿eole.Workbooks.add3.设置第3个工作表为激活工作表eole.Worksheets(″sheet3″).Activate4.打开指定工作簿eole.Workbooks.Open(″c:\temp\ll.xls″)5.显示Excel窗口eole.visible=.t.6.更改Excel标题栏eole.Caption=″VFP应用程序调用Microsoft Excel″7.给单元格赋值eole.cells(1,4).value=XM(XM为数据库字段名)8.设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=59.设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035(设定行高为1厘米,1磅=0.035厘米)10.在第18行之前插入分页符eole.Worksheets(″Sheet1″).Rows(18).PageBreak=111.在第4列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=313.设置四个边框线条的类型eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉eole.ActiveSheet.PageSetup.CenterHeader=″报表1″15.设置页脚eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″16.设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.03517.设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.03519.设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.03520.设置左边距为2厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.03521.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.03522.设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t.23.设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=.t.24.设置页面纸张大小(1-窄行8511 39-宽行1411) eole.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷贝整个工作表edRange.Copy27.拷贝指定区域eole.ActiveSheet.Range(″A1:E2″).Copy28.粘贴eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial 29.在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert31.设置字体eole.ActiveSheet.Cells(2,1)=″黑体″32.设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=2533.设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t.34.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t.35.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents36.打印预览工作表eole.ActiveSheet.PrintPreview37.打印输出工作表eole.ActiveSheet.PrintOut38.工作表另为eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)39.放弃存盘eole.ActiveWorkbook.saved=.t.40.关闭工作簿eole.Workbooks.close41.退出Exceleole.quit先把标题放到剪贴板上,再PASTE()到EXCEL中,代码如下:::clipboard(ls_value)ao_object.range(ls_col+string(1)+":"+ls_col+string(1)).select()ao_object.activesheet.Paste()/*************************************************************下面的函数f_excel_hb,可以实现“将工作簿filename_s中的工作表sheetname_s以新的工作表名称sheetname_t,复制到工作簿filename_t的最后”1.public function boolean f_excel_hb (string filename_s, string filename_t, string sheetname_s, string sheetname_t);2.//==========================================================3.// 合并两个工作簿中的某个工作表4.//==========================================================5.// 作者:yyoinge 2011-10-12 18:006.//==========================================================7.// 将工作簿filename_s中的工作表sheetname_s以新的8.// 工作表名称sheetname_t,复制到工作簿filename_t的最后9.//==========================================================10.if not fileexists(filename_s) then11. messagebox('','工作簿【' + filename_s + '】(源)不存在')12.return false13.end if14.if not fileexists(filename_t) then15. messagebox('','工作簿【' + filename_t + '】(目标)不存在')16.return false17.end if18.long ll_val19.//声明ole对象20.oleobject ole_object_s21.//创建ole对象22.ole_object_s=create oleobject23.//连接到excel24.ll_val = ole_object_s.connecttonewobject("excel.application")25.if ll_val <> 0 then26. messagebox('','ole无法连接Excel!')27.goto error28.end if29.//打开源和目标工作簿30.ole_object_s.workbooks.open(filename_s)31.ole_object_s.workbooks.open(filename_t)32.string ls_t33.ls_t = filename_t34.filename_s = of_splitpath(filename_s, 2)35.filename_t = of_splitpath(filename_t, 2)36.//隐藏excel37.ole_object_s.visible = false38.ole_object_s.displayalerts = false39.int n,t40.int li41.boolean isexists=false42.oleobject lworksheet43.//判断源工作簿中的工作表是否存在44.try45. lworksheet = ole_object_s.Workbooks(filename_s).sheets(sheetname_s)46. isexists = true47.catch( oleruntimeerror er)48. isexists = false49.end try50.if isexists=false then51. messagebox('','工作簿【' + filename_s + '】中工作表不存在工作表[' + sheetname_s + ']')52.goto error53.end if54.//当目标工作簿中存在sheet名为sheetname_t的工作表时,为sheetname_t增加后缀(1),然后再重复进行判断,直到表名不存在55.isexists = true56.do while isexists57.try58. lworksheet = ole_object_s.Workbooks(filename_t).sheets(sheetname_t)59. isexists = true60. sheetname_t += '(1)'61.catch( oleruntimeerror er1)62. isexists = false63. end try64.loop65.//进行工作表合并(移到目标工作簿的最后)66.//int li67.setnull(li)68.ole_object_s.workbooks(filename_s).Sheets(sheetname_s).copy(li, ole_object_s.workbooks(filename_t).Sheets(long(ole_object_s.workbooks(filename_t).Sheets.count)))69.//重命名工作表70.ole_object_s.workbooks(filename_t).sheets(long(ole_object_s.workbooks(filename_t).Sheets.count)).name = sheetname_t71.//保存目标工作簿72.isexists = true73.//ole_object_s.visible = true74.//ole_object_s.displayalerts = true75.//messagebox('', '')76.try77. ole_object_s.workbooks(filename_t).save()78.catch( oleruntimeerror er2)79. messagebox('提示', '无法保存工作簿【' + filename_t + '】')80. isexists = false81.end try82.if not isexists then goto error83.//关闭工作簿84.ole_object_s.workbooks(filename_s).close85.ole_object_s.workbooks(filename_t).close86.//退出excel87.ole_object_s.workbooks.close88.ole_object_s.Application.quit();89.//断开连接90.ole_object_s.disconnectobject();91.//注销ole对象92.destroy ole_object_s;93.return true94.error:95.ole_object_s.workbooks(filename_s).close96.ole_object_s.workbooks(filename_t).close97.ole_object_s.workbooks.close98.ole_object_s.Application.quit();99.ole_object_s.disconnectobject();100.destroy ole_object_s;101.return false102.103.104.end function/**********************************************************//*函数名称:uf_dwsaveas_excel功能:将数据窗口数据导出EXCEL文件,并将EXCEL文件默认英文标题替换成中文。

Excel数据导入和导出的方法

Excel数据导入和导出的方法

Excel数据导入和导出的方法Excel是一款功能强大的电子表格软件,广泛应用于各行各业。

在工作和学习中,我们经常需要将数据从其他来源导入到Excel中,或者将Excel中的数据导出到其他应用程序中。

本文将介绍几种常用的Excel数据导入和导出的方法,帮助您高效地处理数据。

一、从外部文件导入数据1. 从文本文件导入数据:Excel支持从常见的文本文件(如CSV、TXT等)导入数据。

您只需依次点击“数据”-“从文本”选项,选择并打开相应的文本文件,按照向导提示设置分隔符、数据格式等,即可将文本文件中的数据导入到Excel中。

2. 从数据库导入数据:如果您的数据存储在数据库中,可以通过Excel的“数据”-“获取外部数据”-“从数据库”选项连接到数据库,并选择需要导入的数据表或查询结果,最后将数据导入到Excel的工作表中。

3. 从Web页面导入数据:如果需要从Web页面导入数据,可以使用Excel的“数据”-“从Web”选项。

输入目标Web页面的URL地址,Excel会自动解析页面结构,并将数据导入到工作表中。

二、使用Excel自带的导入功能1. 数据透视表功能:使用数据透视表功能可以方便地对大量数据进行汇总和分析。

您可以将原始数据导入到Excel中的工作表,然后使用数据透视表快速生成汇总报表。

2. 文本转列功能:当数据以文本格式存储在一列中,需要按照特定的分隔符将其分隔成多列时,可以使用Excel的文本转列功能。

只需选中待分隔的数据,点击“数据”-“文本到列”,按照向导提示选择分隔符,即可将文本转换为多列。

三、将Excel数据导出到其他应用程序1. 导出为文本文件:如果需要将Excel中的数据导出为文本文件,可以选择“文件”-“另存为”选项,选择文本文件格式(如CSV、TXT 等),保存到本地磁盘即可。

2. 导出为PDF文件:如果需要将Excel中的数据导出为PDF文件,可以使用Excel的导出功能,选择“文件”-“另存为”-“PDF”选项,并设置导出选项,点击保存即可生成PDF格式的文件。

Excel数据的导入与导出技巧

Excel数据的导入与导出技巧

Excel数据的导入与导出技巧在日常工作中,Excel是一个非常常用的办公软件,它不仅可以进行数据的处理和计算,还可以实现数据的导入和导出。

掌握Excel数据的导入与导出技巧,不仅可以提高工作效率,还可以减少错误的发生。

下面将介绍一些Excel数据导入和导出的技巧,帮助大家更好地应用Excel。

一、数据的导入1. 从文本文件导入数据在Excel中,我们可以将文本文件中的数据导入到工作表中。

首先,打开Excel并选择要导入数据的工作表。

然后,点击“数据”菜单栏下的“从文本”按钮,选择要导入的文本文件并点击“导入”。

在导入向导中,我们可以选择数据的分隔符和数据的格式。

最后,点击“完成”按钮即可将文本文件中的数据导入到Excel中。

2. 从数据库导入数据如果我们需要从数据库中导入数据到Excel中,可以使用Excel提供的数据连接功能。

首先,点击“数据”菜单栏下的“获取外部数据”按钮,选择“从其他数据源”并选择数据库。

然后,按照向导的提示,填写数据库的连接信息和查询条件。

最后,点击“完成”按钮即可将数据库中的数据导入到Excel中。

3. 从Web页面导入数据有时候,我们需要从Web页面中导入数据到Excel中进行分析和处理。

在Excel中,我们可以使用“数据”菜单栏下的“从Web”按钮来实现这一功能。

点击按钮后,输入Web页面的URL地址并点击“确定”。

Excel会自动解析Web页面中的表格数据,并将其导入到工作表中。

二、数据的导出1. 导出为文本文件在Excel中,我们可以将工作表中的数据导出为文本文件。

首先,选择要导出的工作表,并点击“文件”菜单栏下的“另存为”按钮。

在保存类型中选择“文本(Tab分隔符)”或“文本(逗号分隔符)”,然后选择保存的路径和文件名。

最后,点击“保存”按钮即可将工作表中的数据导出为文本文件。

2. 导出为CSV文件除了导出为文本文件,我们还可以将Excel中的数据导出为CSV文件。

Excel数据导入导出技巧实现数据的快速迁移

Excel数据导入导出技巧实现数据的快速迁移

Excel数据导入导出技巧实现数据的快速迁移在Excel数据处理中,数据的导入和导出是非常常见且重要的操作。

合理运用数据导入导出技巧不仅可以提升工作效率,还可以实现数据的快速迁移。

本文将介绍几种Excel数据导入导出技巧,帮您快速掌握这些技巧。

第一、Excel数据导入技巧Excel提供了多种方式来导入外部数据,下面将介绍两种常用的数据导入方法。

1. 从文本文件导入数据在Excel中,可以通过“数据”选项卡上的“从文本”按钮来导入文本文件中的数据。

点击“从文本”按钮后,选择要导入的文本文件并按照向导进行设置,即可将文本文件中的数据导入到Excel中。

这种方法适用于以文本形式保存数据的情况,比如以逗号、制表符或其他特定字符分隔的数据。

导入后,Excel会根据分隔符将数据自动划分到不同的列中,便于后续的数据处理和分析。

2. 从数据库导入数据如果您的数据存储在数据库中,可以通过Excel与数据库进行连接来实现数据的快速导入。

在Excel的“数据”选项卡上选择“从其他来源”中的“从SQL Server”或“从Access”等选项,根据向导的提示配置数据库连接参数和查询条件,即可将数据库中的数据导入到Excel中。

这种方法适用于需要频繁从数据库中导入数据并进行处理的情况,通过与数据库的连接,可以实现数据的即时更新和实时查询。

第二、Excel数据导出技巧除了数据导入,Excel也提供了多种方式来导出数据,下面将介绍两种常用的数据导出方法。

1. 将Excel数据导出为文本文件在Excel中,可以选择需要导出的数据范围,然后点击“文件”选项卡的“另存为”按钮,在保存类型中选择“文本(制表符分隔)”或其他类型,即可将Excel数据导出为文本文件。

这种方法适用于将Excel中的数据导出到其他系统或软件进行进一步处理的情况。

导出的文本文件可以以制表符或其他字符作为分隔符,方便其他系统或软件进行数据导入和处理。

2. 将Excel数据导出为CSV文件CSV(逗号分隔值)文件是一种常见的数据导出格式,可以在Excel中将数据导出为CSV文件。

将PB数据窗口数据导出到EXCEL模版

将PB数据窗口数据导出到EXCEL模版

将PB数据窗品导出到EXCEL模版一、建立通信OLEObject ExcelServerInteger li_excelOK,li_rcString ls_path, ls_file,ls_modelExcelServer = CREATE OLEObjectli_ExcelOK = ExcelServer.ConnectToNewObject( "excel.application" )二、输入新文件名li_rc = GetFileSaveName ( "输入新的文件名", &ls_path, ls_file, "XLS", &"XLS Files (*.XLS),*.XLS" , "C:\My Documents", &32770)三、判断文件是否存在If FileExists (ls_path ) ThenFileDelete(ls_path)END IF四、检查给定的文件路径是否可以写入li_rc=FileOpen(ls_path,StreamMode!,Write!,LockWrite!,Replace!)FileClose(li_rc)filedelete(ls_path)五、获到模版文件if FileExists (ls_model ) thenli_rc = FileCopy (ls_model , ls_path, true)if li_rc = 1 thenExcelServer.Workbooks.Open(ls_path)elseExcelServer.workbooks.addExcelServer.Workbooks(1).SaveAs(ls_path)ExcelServer.Workbooks.Open(ls_path)end ifend if六、写入数据窗品数据ExcelServer.application.Sheets(“sheet1”).SelectExcelServer.ActiveSheet.Cells(2,1).value = '制单编号'七、保存EXCEL数据//关闭警告消息对话框,防止退出Excel 时提示ExcelServer.Application.DisplayAlerts = False//保存数据ExcelServer.Application.SaveWorkspace()if f_messagebox('','已成功导出到EXCEL,是否要打开该文件:',2) = 1 then ExcelServer.Application.Visible = trueelseExcelServer.Application.Visible = falseExcelServer.quit()end ifExcelServer.disconnectobject()destroy excelserver。

在powerbuilder中实现excel表格的导入和导出

在powerbuilder中实现excel表格的导入和导出

在powerbuilder 中实现excel表格的导入和导出在为某单位制作一个管理信息系统软件时,用户提出,系统中要能够实现excel 表格的导入和导出。

Excel 软件是专门为处理各式电子表格而设计,它能够非常高效而专业的处理各式表格,在使用这个管理信息系统软件之前,单位的大部分数据都是保存在excel 中的。

系统前台的开发使用的是POWERBUILD,E POWERBUILDER 向对象的数据库开发工具之一,它可以操纵众多大型数据库和桌面数据库,支持多种硬件平台。

但它有一个致命的弱点,就是打印报表非常不方便,打印函数太少,特别是对中国式报表。

而EXCEL制表却非常容易,若把两者结合起来使用则会取长补短。

也就是说我们的这个系统要既能将excel 报表中的内容导入到数据库中,又要能将数据库中的数据导出到excel 中。

PowerBuider 是Sybase 公司推出的一种高级数据库应用程序开发环境,在这个环境中开发数据库应用程序,使用其专利技术DataWindow,可以很轻松的开发出非常专业的数据库应用程序。

此外,PowerBuilder 还支持多种数据库,能够很轻松的与目前流行的MS SQL Server 、Oracle 等企业级数据库建立连接,处理各种事务。

PowerBuilder 中的编程语言被称为脚本(Script ),实际上,使用PowerBuilder 编写的程序也是事件驱动,在界面设计上也完全做到了“所见即所得”,并完全使用面向对象的编程思想,它还提供了对OLE、DDE、Automation 等技术的支持,下面我们就先来看一下如何将excel 报表通过powerbuilder 导入到数据库中。

首先,声明一个OLE M象,如下:OLEObject ExcelServer其次,创建该OLE对象,如下:ExcelServer =Create OLEObject然后,使用PowerBuilder 中的ConnectToNewObject 函数来创建一个新的OLE对象,并且连接到该对象上,如下:ExcelServer. ConnectToNewObject ("excel.Application") 调用该函数时,如果成功的话,返回值是0,否则就意味着调用失败。

PB数据窗口导出word、excel文档

PB数据窗口导出word、excel文档

dw2word,dw2xlsPB 数据窗口数据导出到word,excel, excel 可以自定义修改excel文档的列宽对齐方式,字体样式等// dwsave2word 调用oleglobal type gf_exportdata2word from function_objectend typeforward prototypesglobal subroutine gf_exportdata2word (datawindow ad_datawindow)end prototypesglobal subroutine gf_exportdata2word (datawindow ad_datawindow);string ls_filepathls_filepath=gf_getfilesavename()OleObject OleObjectWordOleObjectWord=Create OleObject// 连接wordif OleObjectWord.ConnectToNewObject("Word.application") <> 0 then Messagebox("提示","ole连接错误!")returnend ifOleObjectWord.visible=false //word文档在操作数据过程中是否可见Long col_colnum,col_rownumConstant Long wdTableBehavior=1Constant Long wdAutoFitFixed=0Constant Long wdCell=12String str_value// 得到数据窗口数据的列数和行数(行数应该是数据行数+1)col_colnum=Long(ad_datawindow.object.datawindow.column.count)col_rownum=ad_datawindow.rowcount() + 1// 先在word文档中画好表格SetPointer(HourGlass!)OleObjectWord.Documents.AddOleObjectWord.ActiveDocument.Tables.Add(OleObjectWord.Selection.Range ,&+col_rownum,col_colnum,wdTableBehavior,wdAutoFitFixed)string ls_colnameinteger i,j,k,lfor i=1 to col_colnum//得到标题头的名称ls_colname=ad_datawindow.Describe('#'+string(i)+".name") + "_t"str_value=ad_datawindow.DEscribe(ls_colname+".text")OleObjectWord.Selection.TypeText(str_value)OleObjectWord.Selection.MoveRight(wdCell)Nextad_datawindow.setRedraw(false)OleObjectWord.Selection.MoveLeft(wdCell)SetPointer(HourGlass!)for i=2 to col_rownumfor j=1 to col_colnumad_datawindow.Scrolltorow(i - 1)ad_datawindow.SetColumn(j)str_value=ad_datawindow.GetItemstring(i - 1,j)if isnull(str_value) thenstr_value=''end ifOleObjectWord.Selection.MoveRight(wdCell)OleObjectWord.Selection.TypeText(str_value)nextnextad_datawindow.setredraw(true)Constant long wdFormatDocument=0// 保存新建的文档OleObjectWord.ActiveDocument.SaveAs(ls_filepath,0,false,"",true,"",fa lse,false,false,false,false)boolean lb_existlb_exist = FileExists(ls_filepath)if lb_exist thenmessagebox("提示","数据已经保存到"+ls_filepath)end if//断开ole连接OleObjectWord.DisconnectObject()destroy OleObjectWordend subroutine// dwsave2xls 调用oleglobal type gf_dwsavetoexcel from function_objectend typeforward prototypesglobal function integer gf_dwsavetoexcel (datawindow adw)end prototypesglobal function integer gf_dwsavetoexcel (datawindow adw); string xlsname, namedinteger valuestring col_del,first_delvalue = GetFileSaveName("另存为", xlsname,named,"XLS","Xls Files (*.XLS), *.XLS")if value = 1 thenadw.saveas(xlsname,Excel!,TRUE)elsereturn 2end ifconstant integer ppLayoutBlank = 12OLEObject ole_objectole_object = CREATE OLEObjectinteger li_retli_ret = ole_object.ConnectToObject("","Excel.Application")IF li_ret <> 0 THENli_ret = ole_object.ConnectToNewObject("Excel.Application")IF li_ret <> 0 THENmessagebox("OLE错误","OLE无法连接!~r~n错误号:" + string(li_ret))Return 0END IFole_object.visible = FalseEND IFpointer oldpointeroldpointer = SetPointer(HourGlass!)ole_object.Workbooks.open(xlsname)ole_object.WorkSheets[1].Activatelong columncount, rowscountcolumncount = long(adw.object.datawindow.column.count) rowscount = adw.rowcount() + 1string ls_colname[],ls_valueinteger i,jlong handlehandle = OpenChannel("Excel", xlsname)// 将列名转化为中文名称,即标题头名称for j = 1 to columncountls_colname[j] = adw.describe("#"+string(j)+".name")ls_value = adw.describe(ls_colname[j]+"_t"+".text")// ole_object.activesheet.cells[1,j].value =ls_value 开始的方法SetRemote("R1C"+STRING(J), ls_value, handle)nextdatawindowchild ldw_childlong ll_foundFor j = 1 To columncount//col_del标识将要删除不可见的列if adw.Describe("#" + String(j) + ".visible")="0" thenIF integer(j)<27 then//当列小于26时,excel中用A-Z表示列号first_del = char(integer(J)+64)else//大于26,小于等于52列时,AA-AZ,大于52列时可能性不大未做考虑first_del= "A"+char(integer(J)+38)end ifcol_del=col_del + first_de l +":"+ first_del+", "continueend if//当列可见且为下拉数据窗口时,数据值转化为显示值If adw.Describe("#" + String(j) + ".edit.style") = 'dddw' Thenadw.GetChild( ls_colname[j], ldw_child )for i=1 to rowscount -1//"dm","dmyy"是我通常用下拉数据子窗口的值以及显示值//更通用的方法是用DDDW.DataColumn,DDDW.DisplayColumn得到ll_found = ldw_child.Find("dm" +"= '"+adw.getitemstri ng(i,j)+"'", 1, ldw_child.RowCount())if ll_found>0 thenSetRemote("R"+STRING(i+1)+"C"+STRING(J),ldw_child.getitemstring(ll_fo und,"dmyy"), handle)end if//另外一种方法,数据量大时比现用方法速度慢//SetRemote("R"+STRING(i+1)+"C"+STRING(J),adw.Describe("Evaluate('Loo kUpDisplay(#"+string(j)+")',"+string(i)+")"), handle) nextend ifnextCloseChannel(handle)if col_del<>'' thenCOL_DEL=LEFT(COL_DEL,LEN(COL_DEL) - 2)//删除不可见列ole_object.activesheet.range(col_del).Deleteend ifSetPointer(oldpointer)ole_object.ActiveWorkBook.Save()ole_object.application.quit()ole_object.Disconnectobject()Destroy ole_objectReturn 1end functionstring ls_assize,namedint li_value,li_rt,li_rc,li_rt1//li_value=gf_dwsavetoexcel(dw_detail)//if dw_detail.rowcount() < 1 then returnSetPointer(HourGlass!)li_value=getfilesavename("Save File",ls_assize,named,"excel","excel files(*.xls),*.xls,"+&"All files (*.*),*.*")IF li_value<> 1 then returnli_rt = dw_detail.saveas(ls_assize,excel!,false)SetPointer(Arrow!)SetPointer(HourGlass!)OLEObject Ole_1Ole_1 = Create OLEObjectli_rc = Ole_1.ConnectToObject(ls_assize)if li_rc <> 0 thendestroy ole_1returnend ifOle_1.Application.Windows(named).Visible=TrueOle_1.Application.DisplayAlerts=Falseif li_rt = 1 then//aOle.Application.Workbooks[1].worksheets[1].columns(7).Insert SetPointer(HourGlass!)Ole_1.Application.Workbooks[1].worksheets[1].Rows(1).Insert// 如何设置导出列的宽度,让列之间有一定的空间?Ole_1.Sheets(1).Columns("A:Z").ColumnWidth = 22.00 // 设置某个区间的列宽Ole_1.Sheets(1).Columns[1].ColumnWidth = 13.00 // 设置某一列的列宽//aOle.Sheets(1).Columns("AG:AI").ColumnWidth = 13.00//设置对齐方式// aOle.Sheets(1).Columns(1).Select //sheet1 的第一列的对齐方式//aOle.Selection.HorizontalAlignment = -4131 //居左// aOle.Sheets(1).Columns("A:Z").HorizontalAlignment = -4 152 //居右//aOle.Sheets(1).Selection.HorizontalAlignment = -4152 //居右//aOle.Selection.HorizontalAlignment = -4108 //居中Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,1].value = "ICAJCD"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,1].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,2].value = "ICVICH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,2].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,3].value = "ICVJCH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,3].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,4].value = "ICVKCH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,4].Font.FontStyl e = "bold"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,5].value = "ICVHCH"Ole_1.Application.Workbooks[1].worksheets[1].Cells[1,5].Font.FontStyl e = "bold"Ole_1.Sheets(1).Columns("A:Z").HorizontalAlignment = -4108 //居中Ole_1.Application.SaveSetPointer(Arrow!)Ole_1.Application.QuitIf Ole_1.DisconnectObject() < 0 thenMessagebox(" 岿粇 "," 娩钡岿 ")elseli_rt1=1End ifelsemessagebox("Note","Export EXCEL Unsuccessful!")returnend ifif li_rt1 = 1 thenmessagebox("Note","Export EXCEL Successful!")end ifif IsValid(Ole_1) thenDestroy Ole_1end if。

用PB实现对Excel文件的处理应用

用PB实现对Excel文件的处理应用

用PB实现对Excel文件的处理应用
常涛
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2013(000)014
【摘要】介绍应用PowerBuild软件开发工具编写程序,访问Excel文件中的数据,实现与Excel中的VBA应用的结合,利用Excel数据满足日常业务需求,从而达到数据资源共享的目的.
【总页数】3页(P48-50)
【作者】常涛
【作者单位】新疆西部钻探克拉玛依钻井公司信息服务中心,新疆克拉玛依834009
【正文语种】中文
【相关文献】
1.用PB编程配置ODBC数据源访问Excel文件 [J], 邵宁军
2.PB报表转成Excel文件时列标题显示问题的解决 [J], 曹杰
3.基于Pandas实现Excel文件的批量导入与分析 [J], 马孝宗
4.基于Pandas实现Excel文件的批量导入与分析 [J], 马孝宗
5.基于Excelize函数库实现Excel文件的自动读写操作 [J], 李琨;石晓明;贾立伟因版权原因,仅展示原文概要,查看原文内容请购买。

Excel数据导入导出个数据导入导出的技巧

Excel数据导入导出个数据导入导出的技巧

Excel数据导入导出个数据导入导出的技巧Excel数据导入导出的技巧Excel作为一款功能强大的电子表格软件,广泛应用于数据处理和分析工作中。

数据的导入导出是Excel中常用的操作之一,能够帮助我们高效地处理大量数据。

本文将介绍一些Excel数据导入导出的技巧,帮助您更好地利用Excel进行数据处理。

一、数据导入技巧数据导入是将外部数据引入到Excel中进行处理和分析的过程。

下面是一些数据导入的技巧,可以帮助您更高效地导入数据。

1. 使用导入向导Excel提供了导入向导,可以选择的导入源包括文本文件、数据库、Web查询等。

导入向导提供了详细的设置选项,使您能够根据导入的数据类型和格式进行相应的配置。

2. 选择正确的分隔符在导入文本文件时,经常需要选择适当的分隔符来分割数据。

通常,逗号、制表符、分号等是常见的分隔符选项。

根据文本文件中数据的格式,选择正确的分隔符可以实现准确的数据导入。

3. 跳过无关行和列有时,导入的文本文件中包含一些无关的行和列,这会对导入结果产生干扰。

在导入过程中,您可以跳过这些无关的行和列,仅导入有用的数据,使导入结果更为清晰。

二、数据导出技巧数据导出是将Excel中的数据输出到外部文件或其他应用程序的过程。

下面是一些数据导出的技巧,可以帮助您更好地导出数据。

1. 选择合适的文件格式在导出数据时,根据实际需要选择合适的文件格式非常重要。

Excel 支持多种文件格式,如CSV、TXT、PDF、HTML等。

根据导出后数据的用途,选择合适的文件格式可以保证数据的兼容性和可读性。

2. 设置导出选项在导出之前,可以根据需要设置导出选项。

比如,对于CSV文件,可以选择包含表头、使用特定的分隔符等选项来满足导出需求。

根据实际情况,灵活使用导出选项可以获得更好的导出结果。

3. 导出为图表或图形除了导出为文本文件,Excel还支持将数据导出为图表或图形。

通过将数据导出为图表或图形,可以更好地展示数据的趋势和变化。

PB数据窗口导出excel

PB数据窗口导出excel

PB数据窗口导出excel,修改第一行英文标题为中文标题,计算合计值分类:PB 2013-11-05 13:01 712人阅读评论(0) 收藏举报pb数据窗口导出excel中文标题计算合计值1.PB数据窗口导出excel利用dw.saveas(filename,Excel5!,true)方法先导出带英文标题的excel。

int li_retstring ls_filename,ls_pathnameboolean lb_existif dw.rowcount()=0 thenmessagebox("提示","无可保存的数据!")return;end ifli_ret = GetFileSaveName("保存文件",ls_pathname,ls_filename,"xls","Excel文件(*.xls),*.xls")if li_ret=1 thenlb_exist = FileExists(ls_pathname)IF lb_exist THENli_ret = MessageBox("保存", ls_pathname+"已经存在,是否覆盖?",Exclamation!, YesNo!) end ifif li_ret=1 thenli_ret = dw.saveas(ls_pathname,EXCEL5!, true)//此处必须为true,后面要修改第一行。

if li_ret=1 then//修改标题头,计算合计gf_set_title_sum(dw,ls_pathname)messagebox('提示','保存成功!')end ifend ifend if2.修改第一行英文标题为中文标题,计算合计值gf_set_title_sum(datawindow dw,string vs_filename)函数如下:int li_retlong ll_column,ll_num,ll_dwrowcountlong ll_xlsrowcount//excel的行数string ls_objtag[]//标题string ls_width[]//每列宽度string ls_obj,ls_valuestring ls_objs[]int i,jString ls_english = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"string ls_colname//操作excelPointer oldpointerOLEObject ole_objectole_object = CREATE OLEObject//修改标题头,计算合计li_ret = ole_object.ConnectToNewObject("Excel.Application")IF li_ret <> 0 THENMessageBox('打开错误','无法连接EXCEL!是否已经安装了EXCEL?错误号:' +String(li_ret))RETURNEND IFole_object.Visible = false //ole应用服务是否显示oldpointer = SetPointer(HourGlass!)ole_object.application.workbooks.open(vs_filename)//打开文件//获取标题ll_column = Long(dw.Object.DataWindow.Column.Count) //取得字段总数i = 0FOR ll_num = 1 TO ll_columnIF dw.DESCRIBE("#"+String(ll_num)+".Visible") = "1" THEN //列标志为nun_Visible的不显示i = i+1ls_obj = dw.DESCRIBE("#"+String(ll_num)+".name") //字段名称的实际存储值ls_objs[i] = ls_objls_objtag[i] = dw.DESCRIBE(ls_obj + "_t.text") //字段名称的显示值ls_width[i] = dw.DESCRIBE(ls_obj + '.width') //每列的宽度END IFNEXT//开始修改标题头for j=1 to upperbound(ls_objtag)ole_object.Cells(1,j).value=ls_objtag[j]next//标题一行居中ole_object.rows(1).HorizontalAlignment = 3//居中//计算合计值ll_dwrowcount=dw.rowcount()//行数ll_xlsrowcount=ll_dwrowcount+1//除了合计之外的行数ole_object.cells(ll_xlsrowcount+1,1).value='合计'for j=2 to ll_columnls_colname=Mid(ls_english,j,1)//获取列名Bole_object.Range(ls_colname+'2:'+ls_colname+string(ll_xlsrowcount)).Select//选中B2:B4ole_object.Range(ls_colname+string(ll_xlsrowcount+1)).Activate//将B5设为活动单元格 ole_object.ActiveCell.FormulaR1C1 ="=SUM(R[-"+string((ll_xlsrowcount+1)-2)+"]C:R[-1]C)"//计算从第二行到倒数第二行的和值nextole_object.application.workbooks(1).worksheets(1).cells.EntireColumn.AutoFit //自适应列宽,行的话换EntireRowole_object.application.workbooks(1).save()//保存ole_object.application.quit()//退出ole_object.disconnectobject()//断开连接destroy ole_object//销毁连接3.总结:其中关于excel操作的部分代码,可以使用excel里面的宏录制功能,查看对应操作的代码。

Excel数据怎么导入导出

Excel数据怎么导入导出

Excel数据怎么导入导出在日常的工作和学习中,我们经常需要处理大量的数据,而 Excel作为一款强大的电子表格软件,为我们提供了便捷的数据处理和分析功能。

其中,数据的导入导出是非常重要的操作,它能够帮助我们在不同的数据源之间进行数据交换和共享。

接下来,让我们详细了解一下 Excel 数据怎么导入导出。

一、Excel 数据导入(一)从文本文件导入数据文本文件(如 CSV、TXT 等)是常见的数据来源。

要从文本文件导入数据到 Excel,首先打开 Excel 软件,点击“数据”选项卡,然后在“获取外部数据”组中选择“自文本”。

在弹出的“导入文本文件”对话框中,找到您要导入的文本文件,选中并点击“导入”按钮。

接下来,根据文本文件的格式设置相应的分隔符(如逗号、制表符等),以便正确地将数据分列,最后点击“完成”即可将数据导入到 Excel 中。

(二)从数据库导入数据如果您的数据存储在数据库中(如 MySQL、SQL Server 等),可以通过 ODBC 连接或专门的插件来实现数据导入。

首先需要在计算机上配置好相应的数据库驱动程序和 ODBC 数据源。

然后在 Excel 中,同样点击“数据”选项卡,选择“自其他来源”中的“来自SQL Server”或其他数据库选项。

按照提示输入数据库服务器的相关信息、登录凭据以及要导入的表或查询语句,就能够将数据库中的数据导入到 Excel 中。

(三)从网页导入数据有时,我们需要从网页上获取数据并导入到Excel 中。

在Excel 中,点击“数据”选项卡,选择“自网站”。

在弹出的“新建 Web 查询”对话框中,输入网页的 URL 地址,然后点击“转到”。

Excel 会显示网页的内容,您可以选择要导入的数据表格,并点击“导入”按钮。

需要注意的是,网页数据的格式可能不太规范,导入后可能需要进行一些整理和调整。

二、Excel 数据导出(一)导出为文本文件要将Excel 中的数据导出为文本文件,首先选中要导出的数据区域,然后点击“文件”选项卡,选择“另存为”。

PB对excel的操作

PB对excel的操作

PB对excel的操作随着科技的发展,电子表格软件已经成为了工作和学习中不可或缺的工具。

而Excel作为最常用的电子表格软件之一,在个人和企业的日常操作中扮演着重要的角色。

本文将介绍PB(Peanut Butter)对Excel 的操作,包括基本操作、数据处理与分析、图表制作、公式运用等内容。

一、基本操作1. 打开与关闭工作簿PB可通过点击文件选项卡,选择“打开”命令来打开Excel工作簿。

在使用完成后,点击右上角的“关闭”按钮即可关闭工作簿。

2. 插入与删除工作表PB可在Excel中插入新的工作表,点击工作表选项卡后,在“工作表组”中选择“插入工作表”即可。

要删除工作表,PB只需选中要删除的工作表,然后点击右键选择“删除”。

3. 数据输入与编辑PB可将数据直接输入到单元格中,通过使用方向键或鼠标切换到需要编辑的单元格,然后键入相应的数据。

若需要编辑已有的数据,PB只需选中要编辑的单元格,然后直接键入新的数据。

二、数据处理与分析1. 数据筛选与排序PB可使用Excel提供的筛选功能,选择需要操作的数据范围,在“数据”选项卡中选择“筛选”按钮,然后根据需要进行筛选条件的设置。

对于数据排序,PB可通过选择需要排序的数据范围,在“数据”选项卡中选择“排序”按钮,按照指定的排序规则进行排序。

2. 数据透视表的制作PB需首先选中所要制作透视表的数据范围,然后在“插入”选项卡中点击“透视表”按钮。

在弹出的对话框中,PB可选择需要作为行、列和数据的字段,从而生成需要的透视表。

三、图表制作1. 制作柱状图PB需选中需要制作柱状图的数据范围,然后在“插入”选项卡中点击“柱状图”按钮。

在弹出的图表类型中,PB可选择适合的柱状图样式,并对图表效果进行调整。

2. 制作折线图PB需选中需要制作折线图的数据范围,然后在“插入”选项卡中点击“折线图”按钮。

在弹出的图表类型中,PB可选择适合的折线图样式,并进行必要的调整和编辑。

PB_Excel导入

PB_Excel导入
MessageBox('文件导入', '并非可选择的文件!', StopSign!)
return
END IF
oXls = CREATE OleObject
ll_Xls = oXls.ConnectToObject('','excel.application')
CHOOSE CASE ll_Xls
ls_value = oSheet.Cells(curRow, 1).Value //读取excel的内容放到变量中,cells(行,列)
IF ls_value = '' THEN Exit //如果遇到空,表示已经导入完成
ll_Row = dw_1.InsertRow(0) //给数据窗口增加行
excelok=excelserver.connecttonewobject("excel.application")
//检查返回值,以确保已成功地连接到了Excel
if excelok <> 0 then
messagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!")
dw_1.setitem() ...
curRow ++
LOOP
oBook.Close
DESTROY oSheet
DESTROY oBook
IF ll_Xls = -5 THEN oXls.Application.Quit
oXls.DisConnectObject()
DESTROY oXls
然后通过insert into table(字段列表) values (:变量)这样的方式来写入数据库。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

pb与excel之间导入导出处理
gf_save_excel_to_txt(as_excel_filename string,as_text_filename string)
//把文件名为as_excel_filename的Excel文件另存为文件名为as_text_filename 的Text文件
//返回:另存是否成功
//删除Text文件
If DeleteFile(as_text_filename) Then
//删除存在的Text文件成功
OLEObject l_ole
l_ole = Create OLEObject;
If l_ole.ConnectToNewObject("Excel.Application") = 0 Then
//连接到Excel
l_ole.Application.DisplayAlerts = False //关闭警告消息对话框,防止退出Excel时提示
l_ole.Application.Workbooks.Open(as_excel_filename) //打开Excel文件
l_ole.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158) //把打开的Excel文件另存为
Text文件,第二参数表示数据以制表符TAB分隔
l_ole.Application.Quit() //退出Excel
Else
Messagebox(\'错误\',\'无法建立与Excel的连接!\',StopSign!)
Destroy l_ole
Return False
End If
Destroy l_ole
Return True
Else
//无法删除Text文件
Return False
End If
保存excel文件:
要想选择目录可以这样
string ls_docname, ls_named //文件路径,文件名
integer li_rt
li_rt = GetFileSaveName("选择保存路径并输入保存文件名" + string(jj),
ls_docname, ls_named, &
"Excel", &
"Excel Files (*.XLS),*.XLS," + &
" TXT Files (*.TXT),*.TXT")
if li_rt = 1 then
//转存
dw_x.saveasascii(ls_docname,"~t","") end if。

相关文档
最新文档