[PB]转载excel操作大全

来源:互联网 发布:爱淘宝网红包 编辑:程序博客网 时间:2024/03/29 18:30

转载excel操作大全:
powerbuilder操作excel命令大全(例子的有些地方不对!)
2006-12-04 16:43
1.创建Excel对象
  eole=CREATEOBJECT(′Excel.application′)
  2.添加新工作簿
  eole.Workbooks.add
  3.设置第3个工作表为激活工作表
  eole.Worksheets(″sheet3″).Activate
  4.打开指定工作簿
  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=5
  9.设置指定行的高度(单位:磅)
  eole.ActiveSheet.Rows(1).RowHeight=1/0.035
  (设定行高为1厘米,1磅=0.035厘米)
  10.在第18行之前插入分页符
  eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1
  11.在第4列之前删除分页符
  eole.ActiveSheet.Columns(4).PageBreak=0
  12.指定边框线宽度(Borders参数如下)
  ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3
  13.设置四个边框线条的类型
  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.035
  17.设置页脚到底边距为3厘米
  eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
  18.设置顶边距为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=1
  25.打印单元格网线
  eole.ActiveSheet.PageSetup.PrintGridlines=.t.
  26.拷贝整个工作表
  eole.ActiveSheet.UsedRange.Copy
  27.拷贝指定区域
  eole.ActiveSheet.Range(″A1:E2″).Copy
  28.粘贴
  eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial
  29.在第2行之前插入一行
  eole.ActiveSheet.Rows(2).Insert
  30.在第2列之前插入一列
  eole.ActiveSheet.Columns(2).Insert
  31.设置字体
  eole.ActiveSheet.Cells(2,1).Font.Name=″黑体″
  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.PrintPreview
  37.打印输出工作表
  eole.ActiveSheet.PrintOut
  38.工作表另为
  eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)
  39.放弃存盘
  eole.ActiveWorkbook.saved=.t.
  40.关闭工作簿
  eole.Workbooks.close
  41.退出Excel
  eole.quit
  42 合并
  string worksheet,beginRowcol,EndRowCol
  MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Select
  MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Merge
  43 sheet改名
  MyOLE.ActiveWorkBook.Sheets(olename).select
  MyOLE.ActiveWorkBook.Sheets(olename).name=newname
  MyOLE=Create OLEObject
  ConnectErr=MyOLE.ConnectToNewObject ("excel.Application")
  MyOLE.visible=false
  //打开指定的XLS文件激活workbooks
  MyOLE.application.workbooks.Open (FilePath)
  //对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。
  MyOLE.Application.DisplayAlerts = False
  if isnull(MyOLE) then return -1 ;
  if ConnectErr <0 then
  choose case ConnectErr
  case -1
  messagebox('错误提示','无效的调用')
  case -2
  messagebox('错误提示','类名没发现')
  case -3
  messagebox('错误提示','对象不能创建')
  case -4
  messagebox('错误提示','文件不能连接')
  case -5
  messagebox('错误提示','不能连接现在的对象')
  case -6
  messagebox('错误提示','文件无效')
  case -7
  messagebox("错误提示","文件不存在或已经打开")
  case -8
  messagebox("错误提示","服务器不能装载选择的文件")
  case -9
  messagebox("错误提示","其他错误")
  end choose
  return -1
  end if
  ///////////////////////////////////////////////////////////////////////////////
  oleobject xlApp    //声明Excel应用程序对象
  xlApp = Create OLEObject
  OLEObject xlsub1,xlsub2,xlsub3,obook1,obook2,xlsub4,obook3
  ret = xlApp.ConnectToNewObject( "Excel.Sheet" ) //打开自动化对象 应为 "excel.application"
  if ret < 0 then
          MessageBox("Connect to Excel Failed !",string(ret))
     return
  //操作第一个excel文件
  string ls_file3="C:\mytest.xls"
  obook3=xlApp.Application.Workbooks.Open(ls_file3) //打开文件
  xlsub4 = xlapp.Application.ActiveWorkbook.Worksheets[1] //激活第一页
  //对单元格赋值
  xlsub4.cells[c,3].Value = string(mydata.getitemdecimal(r,'rs'))
  xlsub4.cells[c,5].Value = string(mydata.getitemdecimal(r,'yp'))
  xlsub4.cells[c,6] = string(mydata.getitemdecimal(r,'jc'))
  xlsub4.cells[c,7] = string(mydata.getitemdecimal(r,'hy'))
  xlsub4.cells[c,8] = string(mydata.getitemdecimal(r,'zl'))
  //合并一个excel文件
  string ls_ran
  ls_ran = "B6:M"+string(ld_1+1)
  obook1 = xlApp.Application.Workbooks.Open(ls_file2)
  xlsub1 = xlapp.Application.ActiveWorkbook.Worksheets[1]
  xlsub1.Range(ls_ran).Copy()        //把所选内容复制到内存中
  
  xlApp.Application.Visible = false
  xlsub2 = obook3.Worksheets.add()
  xlsub2.name = "分类汇总"   
  xlsub2.Range(ls_ran).PasteSpecial() //把上一个文件内容粘过来
  //加入分类汇总
  obook3.Worksheets("分类汇总").Activate()
  integer a[6]
      a={8,9,10,11,12,13}
      xlsub2.Range(ls_ran).Select()
      xlApp.Application.Selection.Subtotal(3,-4157,a, True, False, True)
  xlsub2.Rows(1).Insert()
  xlsub2.cells[1,1] = left(gs_shuqi,4)+"年"+right(gs_shuqi,2)+"月份"
  xlsub2.Cells[1,1].Font.Name="宋体"
  xlsub2.Cells[1,1].Font.Size=22
  xlsub2.Range("A1:M1").Select()
  xlApp.Application.Selection.Merge()
  xlApp.Application.Selection.HorizontalAlignment = 2
  oBook1.save()
  oBook3.Save()
  oBook3.Saveas(is_docname)
  oBook1.close()
  oBook3.close()
  xlApp.Application.quit()
  xlApp.DisConnectObject()
  
  
  
  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chengg0769/archive/2009/05/15/4190560.aspx  
  

官方解答

请问各位高手:
我在Excel中录制了一段宏。现在我想用powerbuilder调用这个Excel文件,运行这个宏。我应该用什么命令?用“Run”行吗?
---------------------------------------------------------------
感谢您使用微软产品。
Excel 可以作为OlE sesrver, 所以可被任何支持OLE对象的编程语言调用。下面是一个引用自以第三方网站的例子, 仅供您作参考。
http://www.sybase.com.cn/cn/content/support/exp_jszc_pb_ole_00002.htm
long numcols , numrows , c, r
OLEObject xlapp , xlsub
int ret
// Set the # of columns and rows to process
// Currently Set to copy the entire DW
numcols = long(dw_1.Object.DataWindow.Column.Count)
numrows = dw_1.RowCount()
// Create the oleobject variable 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))
return
end if
// Open a particular Excel file
xlApp.Application.Workbooks.Open("c:\file1.xls") //,false,true
// Make Excel visible
xlApp.Application.Visible = true
// Resolve the Excel reference once
// This technique shortens the script and improves performance
xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]
// Loop thru the Datawindow and Excel sheet
// The for/next loop copies all rows for each column
For c = 1 to numcols
For r = 1 to numrows
xlsub.cells[r,c] = dw_1.object.data[r,c]
Next
Next
// Save opened file
//xlApp.Application.Activeworkbook.Save()
// SaveAs a different filename
//xlApp.Application.Activeworkbook.SaveAs("c:\file2.xls")
// clean up
在Excel 中,application 对象下有Run 命令,我们只需调用Run 来执行我们的宏。这是一个VB的例子。
HOWTO: Create and Call an Excel Macro Programmatically from VB[OffDev]
ID: Q194611
http://support.microsoft.com/default.aspx?scid=kb;ZH-CN;q194611
在powerbuilder中是类似的.
希望这些讯息对您有帮助。
-                  微软全球技术中心 DTA技术支持

基本语句
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).font.name=’黑体’//设置字体
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。。。依次边界线加粗
Ole_object.ActiveSheet.Range( "A1:Z10 ").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线
④赋值操作
Ole_object.ActiveSheet.range( "A1:Z10 ").Cells.value=“姓名”
Ole_object.ActiveSheet.range( "A1:Z10 ").Cells.value=1
Ole_object.ActiveSheet.range( "A1:Z10 ").Cells.value=“2003-01-01”
Ole_object.ActiveSheet.Range( "A1:Z10 ").Cells(1,2).value=“年龄”//区域内一个单元格的赋值
Ole_object.ActiveSheet.Range( "A1:Z1 ").Cells(1,1).value=“SUM(RC[-9]:RC[-1])”
ls_filename = "C:\alt_report\wf_alt_report.xls "
if FileExists(ls_filename) then FileDelete(ls_filename)
OleObject Loo_Excel
Loo_Excel=create oleobject
if Loo_Excel.ConnectToNewObject( "Excel.Application ") <> 0 then
messagebox( '提示 ', '系統未安裝Excel,無法運行此操作! ')
return
end if
Loo_Excel.Application.Workbooks.Add()
Loo_Excel.Application.Workbooks(1).worksheets(1)
Loo_Excel.Application.Visible = True
Loo_Excel.Application.ScreenUpdating = false
// '正在處理表頭...... '
Loo_Excel.Range( "A1:AB1 ").Select
Loo_Excel.Selection.MergeCells = True
Loo_Excel.Selection.HorizontalAlignment = 3
Loo_Excel.Selection.VerticalAlignment = 3
Loo_Excel.Selection.Font.Bold = True
Loo_Excel.Selection.Font.Size = 14
Loo_Excel.Selection.RowHeight = 28.50
Loo_Excel.ActiveCell.FormulaR1C1 = dw_3.describe( "ls_title "+ ".text ")
///写标头
Loo_Excel.application.workbooks(1).worksheets(1).cells(3, 1 ).value = "排單號碼 "
// dw_2.describe( "po_no "+ ".name "+ "_t.text ")
Loo_Excel.application.workbooks(1).worksheets(1).cells(3, 2 ).value = "客人款號 "
Loo_Excel.application.workbooks(1).worksheets(1).cells(3, 3 ).value = dw_2.describe( "cust_nam_t.text ")
///内容
for i=1 to dw_2.rowcount()
Loo_Excel.application.workbooks(1).worksheets(1).cells(3+i, 1).value = string( dw_2.object.po_no[i] )
next
Loo_Excel.application.ActiveWorkbook.SaveAs(ls_filename)
Loo_Excel.Application.ScreenUpdating = True
Loo_Excel.DisconnectObject()
-----------------------------------------------------------------
也可以从Excel提取信息,假设你想知道当前活动Sheet的A1单元(Cell)的值,
你可以使用如下代码:
ANY MyValue
MyValue = ExcelServer.ActiveSheet.Cells(1,1).value
CHOOSE CASE ClassName(MyValue)
CASE 'string '
//assign to string
//other data types here
......
END CASE
注意ANY变量的用法。返回的Excel对象的method/property可能是各种各样的数据
类型,所以除非你绝对确定返回类型(例如一个Cell对象的ColumnWidth属性一般都
返回的是integer变量),你一般都要使用ANY变量,然后再用ClassName函数来确定
对应的值。

范例代码
  POWERBUILDER是面向对象的数据库开发工具之一,它可以操纵众多大型数据库和桌面数据库,支持多种硬件平台。但它有一个致命的弱点,就是打印报表非常不方便,打印函数太少,特别是对中国式报表。而 EXCEL制表却非常容易,若把两者结合起来使用则会取长补短。 本人通过实践,顺利地把两者结合起来。首先用 POWERBUILDER制作一窗口w_excel,然后在窗口中建立一个数据窗口dw_excel和三个按钮cb_saveas、cb_start、cb_print。同时编写脚本为:
  1.cb_saveas的脚本为:
  saveas(w_excel.dw_excel, ″c:\jycf\xmk.xls″, excel!, true)
  2.cb_start的脚本为:
  run(″c:\program files\microsoft office\office\excel.exe xmk.xls″,maximized!)
  3.cb_print的脚本为:
  long handle_1
  handle_1=openchannel(″excel″,″xmk.xls″) ′建立与EXCEL的通道
  setremote(″r2c1″,″序号″,″excel″,″ xmk.xls″)
  setremote(″r2c2″,″摘要″,″excel″,″ xmk.xls″)
  setremote(″r2c3″,″收入″,″excel″,″ xmk.xls″)
  setremote(″r2c4″,″支出″,″excel″,″ xmk.xls″)
  setremote(″r2c5″,″余额″,″excel″,″ xmk.xls″)
  setremote(″r2c6″,″日期″,″excel″,″ xmk.xls″)
  //更改某一行或某一列的值,同时关闭通道
  closechannel(handle_1,handle(w_excel))
  string str_print
  str_print=″[print()]″
  execremote(str_print,″excel″,″xmk.xls)
  这样一来,就把两者有机地结合起来。
  论文专题   

  摘要Microsoft公司的Office办公软件中的Excel是一种专业的电子表格处理软件,Microsoft公司对它的Office软件系列都提供了对自动化技术的支持,这样就可以通过其他高级编程语言调用Office软件系列,利用其成熟而可靠的技术与功能来轻松实现特定功能。本文中,将通过自动化技术,实现在PowerBuilder中调用Excel来实现表格的输出与打印。
  关键词   自动化 Excel PowerBuilder 表格
  1 问题的提出
  在为某企业设计电子图文档管理系统中,用户提出要求,要能够快速输出某些电子表格。在未使用自动化技术之前,该企业使用的是AutoCad软件来一次性将多个表格生成到一个DWG文件中,然后通过绘图仪出图。这种做法的好处在于能够有效的节省企业的开支,一次性生成大量的表格。但是,缺点也是明显的:这种做法欠缺灵活性,当遇到只需要输出少量表格的情况时,做法过于复杂。即这种做法非常适合于大量表格的批量输出,而不适合个别表格的单独输出。正是在这种背景下,我们提出了使用Excel电子表格处理软件来处理该企业的表格输出问题。
  Excel软件是专门为处理各式电子表格而设计,它能够非常高效而专业的处理各式表格,并且非常关键的是:它具有表格计算汇总功能,在这一点上,AutoCad软件是无法相比的。另外一个原因,在当前的企业中,打印机的使用日益普及,打印速度也日益加快,当多个用户同时需要打印时,可以通过高速的网络打印机来轻松实现,在这一点上,使用Excel也具有一定的优势。
  2 自动化技术
  Microsoft公司提供的自动化技术,简单的说,就是将某一个应用程序的功能(可能是一部分)当作一系列的对象来向其他的外部应用程序暴露(Expose),这个外部应用程序就可以使用这些对象,这个过程就被称为自动化(Automation)。例如,Excel,我们可以将它的大部分功能当作一系列对象来加以暴露,然后在另外的应用程序中使用这些对象,这就是使用自动化对象来调用Excel完成指定功能的关键所在。
  一个应用程序的可访问对象被称为对象模型(Object Model),如果能够使用自动化来操纵一个程序的对象模型就意味着可以重复使用组件。例如,使用自动化,利用Excel中已经编写和测试好的代码来进行复杂的数学运算,这就省去了程序员亲自动手编写和调试复杂代码的麻烦。
  暴露对象的程序被称为服务器(Servers),使用这些对象的程序被称为客户(Clients)。在这里,我们把Excel当作自动化服务器,把我们的PowerBuilder应用程序当作客户,这样就可以通过自动化技术来实现特定的表格生成和打印功能。
  在大多数的Office软件中都包含一个Application对象,Excel也不例外,这个对象是Excel对象模式中的基础对象,它包含了许许多多的成员(Member),但是在这里,我们只需要使用到其中的一部分。
  3 在PowerBuilder中使用自动化技术
  PowerBuider是Sybase公司推出的一种高级数据库应用程序开发环境,在这个环境中开发数据库应用程序,使用其专利技术——DataWindow,可以很轻松的开发出非常专业的数据库应用程序。此外,PowerBuilder还支持多种数据库,能够很轻松的与目前流行的MS SQL Server、Oracle等企业级数据库建立连接,处理各种事务。
  PowerBuilder中的编程语言被称为脚本(Script),实际上,使用PowerBuilder编写的程序也是事件驱动,在界面设计上也完全做到了“所见即所得”,并完全使用面向对象的编程思想,它还提供了对OLE、DDE、Automation等技术的支持,下面就来说明如何在PowerBuilder中使用自动化技术。
  首先,声明一个OLE对象,如下:
  OLEObject OLE_MyExcel
  其次,创建该OLE对象,如下:
  OLE_MyExcel =Create OLEObject
  然后,使用PowerBuilder中的ConnectToNewObject函数来创建一个新的OLE对象,并且连接到该对象上,如下:
  OLE_MyExcel. ConnectToNewObject ("excel.Application")
  调用该函数时,如果成功的话,返回值是0,否则就意味着调用失败。
  到此,自动化的准备工作已经完成,下面是具体的操作过程。
  4 处理和打印表格
  在调用Excel时,首先需要解决的一个问题是是否让Excel可见,即是否为后台操作。这个问题可以简单的通过设置Visible属性加以控制,如果希望Excel后台运行,可以简单的编写如下语句:
  OLE_MyExcel.visible=false
  然后是打开指定的XLS文件,具体的语句如下:
  OLE_MyExcel.Application.Workbooks.Open ("d:\excel-example.xls")
  要操纵数据列表中的数据单元,就必须对ActiveCell对象进行操纵,该对象是Application对象中一项属性。将数据输入到一个数据单元包括两个步骤:第一是选择一个数据单元,第二是将数据传递给它。选择一个数据单元通过调用Range对象的Select()方法就可以完成,Range对象是用来选择一个或多个数据单元的。Select()方法需要起始的行数、列数和结束的行数、列数来确定所选择的数据单元。如果只选择一个单独的数据单元,就可以忽略结束的行、列数。当范围被设定以后,将数据传递给ActiveCell对象(引用了被Range对象指定的数据单元)的FormulaR1C1属性。如下:
  OLE_MyExcel.Range("c10").Select()
  OLE_MyExcel.ActiveCell.FormulaR1C1 = sle_2.text //Sle_2为一个静态文本框控件
  OLE_MyExcel.Range("J10").Select()
  ……
  如果希望得到一系列数值的和,则需要首先使用Select()方法来指定需要求和的Cell的范围,然后指定存放和的Cell位置,最后调用SUM方法即可,如下:
  OLE_MyExcel.Range(“A1:D1”).Select()
  OLE_MyExcel.Range(“E1”).Activate()
  OLE_MyExcel.ActiveCell.FormulaR1C1 = “=SUM(RC[-4]:RC[-1])”
  当然还可以进行其他方面的设置,例如把字体设置为粗体(Bold),则可以编写如下代码:
  OLE_MyExcel.Range(“A1:E1”).Select()
  OLE_MyExcel.Selection.Font.Bold = True
  至于其他的设置可以参考相关书籍。
  至于表格的打印,则是简单的调用PrintOut()方法即可,但是需要首先指定打印的范围,如下是打印名为“Sheet1”的WorkSheet的代码:
  OLE_MyExcel.Worksheets("sheet1").Activate()
  OLE_MyExcel.ActiveSheet.PrintOut()
  接下来是关于对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。这个问题只需要简单的对OLE_MyExcel.Application.DisplayAlerts属性进行设置即可,为True时弹出警告框,为False时不弹出警告框,保存所作的修改。
  最后一步,在作完所有工作以后,需要关闭自动化对象,撤销与自动化服务器的连接,销毁OLE对象,因为使用自动化程序,尤其是Word或Excel这样的Office程序,所消耗的系统资源是很庞大的,因此在每次工作完成之后,需要释放这部分系统资源。如下:
  OLE_MyExcel.Application.quit()
  OLE_MyExcel.DisConnectObject()
  destroy OLE_MyExcel
  5 结束语
  在使用了自动化技术以后,完满的解决了原来的表格处理问题,可以非常方便的对各种表格进行小批量的处理与打印,非常灵活。如果能够与企业的数据库结合起来,通过外部程序将数据成批输入,亦可解决大批量数据输出的问题,不失为一条好的解决方案。
  在实际应用中,通过与企业数据库相结合,使用此方法自动填写了包含了大量数据的XLS文件,并可以通过打印机打印出来.
         eapp.visible:=false;  
          eworkbook:=eapp.workbooks.add;  
          eworkbook.worksheets[1].name:='java';  
          eworkbook.worksheets[1].Columns[1].ColumnWidth   :=   40;  
          //exworksheet.columns.autofit;//使各列自动对齐  
          eapp.activeworkbook.saveas('c:\222.xls');  
          eapp.workbooks.close;  
          eapp.quit;

eworkbook.worksheets[1].columns.autofit

ExcelWorksheet.columns.autofit

 

0 0
原创粉丝点击