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的操作不失为一种好的报表输出方式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文件的应用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表的问题应该是个老问题了,大家讨论了不知道有多少年了,今天我也遇到了这个问题,上网找了半天大家说什么的都有。
总结了一下,把我看到的都贴出来,呵呵。
一.// ... 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

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】将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详解
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数据导入和导出的方法,帮助您高效地处理数据。
一、从外部文件导入数据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。
一、数据的导入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提供了多种方式来导入外部数据,下面将介绍两种常用的数据导入方法。
1. 从文本文件导入数据在Excel中,可以通过“数据”选项卡上的“从文本”按钮来导入文本文件中的数据。
点击“从文本”按钮后,选择要导入的文本文件并按照向导进行设置,即可将文本文件中的数据导入到Excel中。
这种方法适用于以文本形式保存数据的情况,比如以逗号、制表符或其他特定字符分隔的数据。
导入后,Excel会根据分隔符将数据自动划分到不同的列中,便于后续的数据处理和分析。
2. 从数据库导入数据如果您的数据存储在数据库中,可以通过Excel与数据库进行连接来实现数据的快速导入。
在Excel的“数据”选项卡上选择“从其他来源”中的“从SQL Server”或“从Access”等选项,根据向导的提示配置数据库连接参数和查询条件,即可将数据库中的数据导入到Excel中。
这种方法适用于需要频繁从数据库中导入数据并进行处理的情况,通过与数据库的连接,可以实现数据的即时更新和实时查询。
第二、Excel数据导出技巧除了数据导入,Excel也提供了多种方式来导出数据,下面将介绍两种常用的数据导出方法。
1. 将Excel数据导出为文本文件在Excel中,可以选择需要导出的数据范围,然后点击“文件”选项卡的“另存为”按钮,在保存类型中选择“文本(制表符分隔)”或其他类型,即可将Excel数据导出为文本文件。
这种方法适用于将Excel中的数据导出到其他系统或软件进行进一步处理的情况。
导出的文本文件可以以制表符或其他字符作为分隔符,方便其他系统或软件进行数据导入和处理。
2. 将Excel数据导出为CSV文件CSV(逗号分隔值)文件是一种常见的数据导出格式,可以在Excel中将数据导出为CSV文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。