VFP和Excel都可以用来进行处理数据库表格.docx_第1页
VFP和Excel都可以用来进行处理数据库表格.docx_第2页
VFP和Excel都可以用来进行处理数据库表格.docx_第3页
VFP和Excel都可以用来进行处理数据库表格.docx_第4页
VFP和Excel都可以用来进行处理数据库表格.docx_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:*!* 1创建Excel对象oExcel=Createobject(Excel.application)*!* 2添加新工作簿oExcel.Workbooks.Add*!* 3设置第3个工作表为激活工作表oExcel.Worksheets(sheet3).Activate*!* 4打开指定工作簿oExcel.Workbooks.Open(c:/temp/ll.xls)*!* 5显示Excel窗口oExcel.Visible=.T.*!* 6更改Excel标题栏oExcel.Caption=VFP应用程序调用Microsoft Excel*!* 7给单元格赋值oExcel.cells(1,4).Value=XM(XM为数据库字段名)*!* 8设置指定列的宽度(单位:字符个数)oExcel.ActiveSheet.Columns(1).ColumnWidth=5*!* 9设置指定行的高度(单位:磅)oExcel.ActiveSheet.Rows(1).RowHeight=1(设定行高为1磅,1磅=0.035厘米)oExcel.ActiveSheet.Rows(50:100).RowHeight=1&设置第50行至100行的高度*!* 10在第18行之前插入分页符oExcel.Worksheets(Sheet1).Rows(18).PageBreak=1*!* 11在第4列之前删除分页符oExcel.ActiveSheet.Columns(4).PageBreak=0*!* 12指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(b3:d3).BorderS(2).Weight=3*!* 13设置四个边框线条的类型oExcel.ActiveSheet.Range(b3:d3).BorderS(2).LineStyle=1(其中Borders参数:1左、2右、3顶、4底、5斜、6斜/;LineStyle值:1与7细实、2细虚、4点虚、9双细实线)*!* 14设置页眉oExcel.ActiveSheet.PageSetup.CenterHeader=报表1*!* 15设置页眉(字体大小)oExcel.ActiveSheet.PageSetup.CenterHeader=&50报表1&后面的50可以自定义,表示字体的大小*!* 16设置页脚oExcel.ActiveSheet.PageSetup.CenterFooter=第&P页*!* 17.设置页脚(字体大小)oExcel.ActiveSheet.PageSetup.CenterFooter=&28第&P页&后面的28可以自定义,表示字体的大小*!* 18设置页眉到顶端边距为2厘米oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035*!* 19设置页脚到底边距为3厘米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035*!* 20设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.035*!* 21设置底边距为4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.035*!* 22设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.035*!* 23设置右边距为2厘米oExcel.ActiveSheet.PageSetup.RightMargin=2/0.035*!* 24设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.T.*!* 25设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.T.*!* 26设置页面纸张大小(1窄行8511 39宽行1411 9:A4)oExcel.ActiveSheet.PageSetup.Papersize=1*!* 27打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.T.*!* 28拷贝整个工作表oExcel.ActiveSheet.UsedRange.Copy*!* 29拷贝指定区域oExcel.ActiveSheet.Range(A1:E2).Copy*!* 30粘贴oExcel.WorkSheet(Sheet2).Range(A1).PasteSpecial*!* 31在第2行之前插入一行oExcel.ActiveSheet.Rows(2).Insert*!* 32在第2列之前插入一列oExcel.ActiveSheet.Columns(2).Insert*!* 33设置字体oExcel.ActiveSheet.Cells(2,1).Font.Name=黑体*!* 34设置字体大小oExcel.ActiveSheet.Cells(1,1).Font.Size=25*!* 35设置字体为斜体oExcel.ActiveSheet.Cells(1,1).Font.Italic=.T.*!* 36设置整列字体为粗体oExcel.ActiveSheet.Columns(1).Font.Bold=.T.*!* 37清除单元格公式oExcel.ActiveSheet.Cells(1,4).ClearContents*!* 38打印预览工作表oExcel.ActiveSheet.PrintPreview*!* 39打印输出工作表oExcel.ActiveSheet.PrintOut*!* 40 oExcel.CommandBars(1).Controls(1).accChild(18).Execute &打印(菜单序号18为Excel2003的打印项)&不同版本Excel的菜单序号可以通过以下程序取得*(需要在VFP7.0以上运行)oXls=Getobject(,excel.sheet)XlApp=oXLS.ApplicationXlSheet=XlApp.ActiveSheetbars=xlapp.CommandBars.CountStr1=Fori=1Tobars Str1=Str1+Chr(13)+Alltrim(Str(i)+、+xlapp.CommandBars(i).accName+(NAME:+xlapp.CommandBars(i).Name+ INDEX:+Alltrim(Str(xlapp.CommandBars(i).Index)+) bars2=mandbars(i).accChildCountForj=1Tobars2Tryobj=mandbars(i).Controls(j) Str1=Str1+Chr(13)+ +Alltrim(Str(j)+、+mandbars(i).Controls(j).accname+(ID:+Alltrim(Str(xlapp.CommandBars(i).Controls(j).Id)+)Fork=1Toobj.accChildCountTry IfNotEmpty(obj.Controls(k).accname ) Str1=Str1+Chr(13)+ +Alltrim(Str(k)+、+obj.Controls(k).accName+ (ID:+Alltrim(Str(obj.Controls(k).Id)+)Endif Catch Exit Endtry Endfor Catch Exit Endtry Endfor Wait Windows Alltrim(Str(i)+ / +Alltrim(Str(bars)+ +Str(i/bars*100,10,2)+%NowaitEndforSave To Xls.txtAll LikeStr1Modify Command Xls.txtReturn*!* 41工作表另存为oExcel.ActiveWorkbook.SaveAs(c:/temp/22.xls)*检测当前目录是否有同名的EXCEL表,如果有先删除,再另存If!File(Sys(5) +Curdir() + result.xls) oExcel.ActiveWorkbook.SaveAs(Sys(5) +Curdir() + result.xls)ElselcFileName = loExcel.GetSaveAsFilename(result, Excel (*.xls), *.xls)If!Empty(lcFileName)If File(lcFileName)Delete File(lcFileName)EndifoExcel.ActiveWorkbook.SaveAs(lcFileName)EndifEndif*!* 42放弃存盘 & 避免出现保存对话框oExcel.ActiveWorkbook.saved=.T.*!* 43存盘oExcel.ActiveWorkbook.Save*!* 44关闭工作簿oExcel.Workbooks.Closeobjexcel.activeworkbook.Close(.F.)*!* 45退出ExceloExcel.QuitReleaseoExcel&只有释放对象变量, EXCEL进程才会完全关闭*!* 46合并单元格oExcel.ActiveSheet.Range(A4:B5).MergeCells=.T.*!* 47下列设置大家自己理解Withcrfole.ActiveSheet.PageSetup .LeftHeader =Chr(13)+左页眉 .CenterHeader = 中页眉 .RightHeader = 右页眉 .LeftFooter = 左页脚 .CenterFooter = 中页脚 .RightFooter = 右页脚 .Orientation=1&1竖排,2横排EndwithWithcrfole.Range(A4:C4) .MergeCells = .T. .WrapText =.F. .Orientation = 0 .AddIndent =.F. .ShrinkToFit = .F.Endwith*!* 48文本对齐oExcel.Range(A4:c4).HorizontalAlignment =1&水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)oExcel.Range(A4:c4).VerticalAlignment =2&垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5=分散对齐)*!* 49拷贝整个工作表(含格式)oExcel.activesheet.cells.Copy&拷贝oExcel.sheets(1).Select&选择第一工作表oExcel.ActiveSheet.Paste&粘贴oExcel.ActiveSheet.Cells(3,4).Value& ActiveSheet 为当前的Sheet工作薄名字,Cells(3,4).value 为第3行第4列的值*以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel 97及中文Windows 98*!* 50显示某个单元格的批注内容oExcel=Createobject(Excel.application)oExcel.Workbooks.Open(d:/TEST/testa.xls)oExcel.Visible=.T.?oExcel.Range(B5).Comment.Text&显示B5单元格的批注内容oExcel.Workbooks.CloseoExcel.QuitReleaseoExcel*!* 51oExcel.ActiveSheet.PageSetup.PrintTitleRows=$1:$1 &每页都打印行标头(每页顶部出现的单元格的行)*!* 52保护工作表:oExcel.ActiveSheet.Protect(密码,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.)*!* 53保护工作薄oExcel.ActiveWorkbook.Protect(密码,.T.,.T.)第一个.T.:保护工作簿结构第二个.T.:保护工作簿窗口*!* 54设置允许用户编辑区域oExcel.ActiveSheet.Protection.AllowEditRanges.Add(区域3,oExcel.ActiveSheet.Range(A2:D5)*!* 55如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为.F.oExcel.DisplayAlerts = .F.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为 False;这样每次出现需用户应答的消息时,Microsoft Excel 将选择默认应答。如果将本属性设置为 False,那么宏运行结束后, Microsoft Excel 并不自动将其设置回 True。故当宏运行结束后,都应将本属性设置回 True 值。*!* 56将当前工作表中的已用区域(只读)存入数组。strPath=D:/TEST/123.xlsLocaloExceloExcel=Createobject(Excel.Application)oExcel.WorkBooks.Open(strPath)arrTableInfo=oExcel.ActiveSheet.UsedRange.Value&将当前工作表中的已用区域(只读)存入数组。oExcel.QuitReleaseoExcelInsert Into表名FromarrTableInfo*!* 57设置excel批注的字体(excel 2000实现了,如下:)ole.Range(a3).Comment.Shape.Select& 此命令要求批注的 Visible=.t.ole.Selection.Font.Size=9ole.Selection.Font.Name=黑体ole.Selection.Font.bold=.F.注:该组命令要求先选中批注框,否则写成 ole.Range(a3).Comment.Shape.Font.Size=9 则出错,不知为何!*!* 58如何取得当前EXCEL表中工作表的数目及各工作表的名称?ClearLocallnSheetCountoExcel=Createobject(EXCEL.APPLICATION)&创建Excel对象oExcel.WORKBOOKS.Open(c:/111/321.xls)&打开指定工作簿WithoExcel lnSheetCount=.WorkBooks(1).Sheets.Count&统计工作表数量Endwith?当前EXCEL表中工作表的数目为:+Alltrim(Str(lnSheetCount)For EachoMyVarInoExcel.sheets ?当前EXCEL表中工作表的名称分别为+oMyVar.Name&显示Excel表中所有工作表NextoMyVaroExcel.WORKBOOKS.Close&关闭工作簿oExcel.Quit&退出Excel*!* 59获取工作表名称在以下示例中,创建了一个 microsoft excel 实例,添加了一个新的工作簿。使用 foreach 语句显示工作簿中每个工作表的名称。此示例要求在运行示例的机器上正确安装 microsoft excel。oExcel =Create(Excel.Application)oExcel.Workbooks.AddFor EachoMyVarInoExcel.sheets ? oMyVar.NameNextoMyVar*!* 60虽然用APPEND From tx.Xls Type XL8可以更简单的追加数据,但有时会导致程序非法错误退出(除非先另存为Excel 5.0)*!* 61VFP控制EXCL文件另存为DBF(EXCEL后台运行)fil=Thisform.List1.Value&其值为一个包含路径的文件名oExcel=Createobject(Excel.application)oExcel.Workbooks.Open(fil)&打开文件oExcel.Selection.AutoFilter&关闭(如果无则打开)自动筛选oExcel.Range(A1:F1000).Select&选中从第1行到1000行的前6列数据(另存后只有这些数据)asfil=Strtran(Upper(Strtran(fil,Substr(fil,1,Rat(/,fil),c:/windows/desktop/cphz/),.XLS,.dbf)&要保存的文件名If File(asfil) Delete File&asfilEndifoExcel.ActiveWorkbook.SaveAs(asfil,8)&另存为DBFoExcel.ActiveWorkbook.saved=.T.&不保存当前EXCEL表oExcel.Workbooks.Close&关闭表oExcel.Quit&退出EXCELReleaseoExcel&释放变量*VFP中例子*lcFileName=D:/TEST.XLSoExcel=Createobject(Excel.application)oExcel.Workbooks.Open(&lcFileName)&打开文件R=oExcel.SHEETS(1).UsedRange.Rows.Count&有数据的总行数C=oExcel.SHEETS(1).UsedRange.Columns.Count&有数据的总列数oExcel.Cells(R,C).Select&选中数据oExcel.Selection.NumberFormatLocal = &把被选定的单元格设为文本格式oExcel.Columns.AutoFit&让所有的列宽都自动调整oExcel.DisplayAlerts=.F.oExcel.ActiveWorkbook.SaveAs(D:/TEST.DBF,8)&另存为DBF*oExcel.ActiveWorkbook.SaveAs(D:/NewTest.xls,39) &另存为5.0的Excel,或用43表示95/97格式oExcel.ActiveWorkbook.saved=.T.&不保存当前EXCEL表oExcel.Workbooks.Close&关闭表oExcel.Quit&退出EXCELReleaseoExcel&释放变量Messagebox(Excel文件:D:/TEST.XLS 另存为 D:/TEST.DBF 完成!,64,信息提示)*VB例子*功能:VB调用Excel,将一个Excel文件另存为Dbf。前提:要安装ExcelDim oExcelAs ObjectlcSFileName = D:/test.xls源Excel文件名lcDFileName = D:/test1.dbf目标Dbf文件名SetoExcel =Createobject(Excel.Application)创建Excel对象oExcel.Workbooks.Open(lcSFileName)打开Excel表*R = oExcel.SHEETS(1).UsedRange.ROWS.Count 有数据的总行数*C = oExcel.SHEETS(1).UsedRange.Columns.Count 有数据的总列数*oExcel.Cells(R, C).Select 选中数据*oExcel.Columns.AutoFit 让所有的列宽都自动调整oExcel.DisplayAlerts = Flase不显示提示框oExcel.ActiveWorkbook.SaveAsFileName:=lcDFileName, FileFormat:=8oExcel.ActiveWorkbook.saved = Ture不保存当前EXCEL表oExcel.Workbooks.Close关闭表oExcel.Quit退出EXCELSetoExcel = Nothing释放对象MsgBox (Excel文件: & lcSFileName & 另存为 & lcDFileName & 完成!)*!* 62VFP用ADO连接Excel,然后将Excel内容导出DBF的方法*-以下代码是将123.XLS中的SHEET5中的内容转换成RR.DBFoConnection =Createobject(adodb.connection)&建立连接对象WithoConnection .ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/temp/123.xls;Extended Properties=excel 8.0;HDR=YES;IMEX=1;Persist Security Info=False .OpenEndwithoConnection.EXECUTE(select * into dBase III;DataBase=d:/temp.rr from sheet5$)oConnection.Close*!* 63设置打印参数:用Excel做报表,可打印时怎么选择打印机,即.ActiveWindow.SelectedSheets.PrintOut的参数有哪些?Expression.PrintOut(From,To, Copies,Preview, ActivePrinter, PrintToFile,Collate, PrToFileName)Expression必选。该表达式返回“应用于”列表中的某个对象。FromVariant 类型,可选。打印的开始页号。如果省略该参数,将从起始位置开始打印。ToVariant 类型,可选。打印的终止页号。如果省略该参数,将打印至最后一页。Copies Variant 类型,可选。要打印的份数。如果省略该参数,将只打印一份。PreviewVariant 类型,可选。如果为 True 则 Microsoft Excel 打印指定对象之前进行打印预览。如果为 False,或者省略此参数则立即打印该对象。ActivePrinter Variant 类型,可选。 设置活动打印机的名称。PrintToFile Variant 类型,可选。如果为 True 则打印输出到文件。如果没有指定 PrToFileName,则 Microsoft Excel 将提示用户输入要输出文件的文件名。CollateVariant 类型,可选。如果为 True 则逐份打印每份副本。PrToFileName 可选,Variant 类型。如果将 PrintToFile 设置为 True,则本参数指定要打印到的文件名。说明From参数和To参数所描述的“页”指的是要打印的页,并非指定工作表或工作簿中的全部页。*!* 64如何用编程的方法打开有密码的Excel文件?*Excel文件加了密码,如何在VFP中用编程的方式把密码输入,使Excel文件打开oExcel=Createobject(Excel.application)oExcel.Workbooks.Open(d:/22.xls)这样还有一个密码的对话框出来,需要输入密码才能打开文件。*!* 65如何用编程的方法直接打开有密码的Excel文件?oEle.Workbooks.Open(d:/22.xls,.F.,.F., ,123,456)123表示打开权限的密码,456表示修改权限的密码.*!* 66如何将一个已知路径的图片插入到excel中.oexcel1.ActiveSheet.PictureS.Insert(图片文件名)*!* 67能不能指定在某一位置或区域放置图片并控制图片显示大小呢?OLEAPP.SHEETS(1).Selectoleapp.Range(位置).Selectoleapp.ActiveSheet.PictureS.Insert(图片文件名).Selectoleapp.Selection.ShapeRange.LockAspectRatio =.T.oleapp.Selection.ShapeRange.Height= 57*!* 68类型为字符型的字段输出到excel 中,前面的零被自动去掉,例如“009877”变为“9877”,怎么解决?1.在字符串前面加半角单引号“ ”,例如:o.Cells(1,1).Value=0123或用变量cString=+0123&其中0123可以取自表中一个字段o.Cells(1,1).Value=cString&o.Range(A1:A1).value=cString2.oExcel.CELLS(1,1).Select&或eole.Range(A1:E1).SelectoExcel.Selection.NumberFormatLocal = &把被选定的单元格设为文本格式oExcel.Cells(1,1).Value=0123&给所选单元格覆值*!* 69在 Excel 中插入行和列 :objExcel.Rows(1).Insert()&在第一行前面插入一行objExcel.Columns(2).Insert()&在第二列前面插入一列*!* 70获取 Excel 记录数loXls =Createobject(excel.application)bookExcel = loXls.Application.Workbooks.Open(f:/pz.xls)nrows=bookExcel.Worksheets(pz)UsedRange =nrows.UsedRanger=UsedRange.Rows.Count&有数据的总行数c=UsedRange.Columns.Count&有数据的总列数loXls.Workbooks.CloseloXls.Quit*!* 71在EXCEL中如何在打开文件的同时自动执行一个宏命令。只要将宏的命名为 AUTO_OPEN 即可。如果要在文件关闭时运行,则命名为auto_close 。*!* 72在VFP中可以执行EXCEL的选择性粘贴吗?.Range(A2).PasteSpecial (xlPasteValues)& 会出错.Range(A2).PasteSpecial (3)& 也会出错.Range(A2).PasteSpecial& 只好这样了*!* 73如何才能只粘贴值呢?xlPasteValues=-4163oExcel.Range(A1).SelectoExcel.Selection.CopyoExcel.Range(B1)._PasteSpecial(xlPasteValues)*注意:在Excel 中,xlPasteValues是一个常量,它的值是一个数值型的:-4163oExcel.Range(A1).CopyoExcel.Range(B3).PasteSpecial(8)&粘贴行、列宽oExcel.Range(B3).PasteSpecial(-4122)&粘贴格式*!* 74如何从excel读取数据*建立一个excel对象*Localhb1Asexcel.Applicationcsheetname=Trim(Thisform.text2.Value)&读取用户要读取excel的sheet名*读取数据源所在的EXCEL文件名*If Empty(Trim(Thisformset.filepath) Messagebox(请先选择要导入的excel文件!,0,提示)ReturnEndifIf Empty(Trim(csheetname)Messagebox(请先选择要导入的工作表sheet名称!,0,提示)ReturnEndifTryhb1=Createobject(excel.application)Catch Messagebox(请检查你是否已安装microsoft excel应用程序!,0,提示)Endtry*打开EXCEL对象,开始读取数据*HB1.workbooks.Open(Trim(Thisformset.filepath)hb1.Sheets(csheetname).SelectSeleStore&这是要读取的数据存放的表Zapisend=.F.&用于判断是否记录已到底i=1Do Whileisend=.F.Append Blankcrq=Dtoc(drq) cdh=hb1.Cells(i,1).Value If Isnull(cdh) cdh=Endif*用于判断数据类型,数据类型一定要判断是否为NULL,* * 然后如果不是指定的类型,还要进行转换*If Type(cdh)C cdh=Alltrim(Str(cdh)Endifcdwmc=Trim(hb1.Cells(i,2).Value)If Isnull(cdwmc) cdwmc=Endifcgg=hb1.Cells(i,3).Value If Isnull(cgg) cgg=Else If Type(cgg)C cgg=Alltrim(Str(cgg)Endif Endifcjldw=hb1.Cells(i,4).Value If Isnull(cjldw) cjldw=Endifcjldw=Iif(Type(jldw)C,Alltrim(Str(cjldw),Alltrim(cjldw) nsl=hb1.Cells(i,5).Value If Isnull(nsl) nsl=0Endifcch=Trim(hb1.Cells(i,6).Value)If Isnull(cch) cch=Endifcxh=hb1.Cells(i,8).Value If Isnull(cxh) cxh=Else If Type(cxh)C cxh=Trim(Str(cxh)Elsecxh=Trim(cxh)Endif Endifccpmc=hb1.Cells(i,9).Value If Isnull(ccpmc) ccpmc=Endif If Type(ccpmc)C ccpmc=Alltrim(Str(ccpmc)Elseccpmc=Trim(ccpmc)Endif SelectStoreReplacerqWithcrq,dhWithcdh,dwmcWithcdwmc,ggWithcgg,jldwWithcjldw,slWithnsl,chWithcch,cpbhWithcxh,cpmcWithccpmc i=i+1&如果一行全为空,记作记录到底,如果中间存在多行的问题,我没有做考虑*If Empty(cxh) And nsl=0 AndEmpty(cch) AndEmpty(cjldw) AndEmpty(cdh) AndEmpty(cgg) isend=.T.EndifEnddoDele&最后一行为空行,删除Wait共转换得到+Alltrim(Str(Reccount()+条记录!Window Timeout2hb1.Quit*!* 75本程序通过将原dbf表拷成excel格式,然后导入并设置报表格式ParatablenameLocalhb1Asexcel.ApplicationWait正在导出数据,请稍侯Window At20,30Timeout1bhaveerror=.F.&定义一个变量判断是否发生错误Try hb1=Createobject(excel.application)Catch Messagebox(请检查你是否已安装microsoft excel应用程序!,0,提示) bhaveerror=.T.EndtryIfbhaveerror=.T.ReturnEndifIf Right(curr_path,1)/ curr_path=curr_path+/Endifctablename=tablename+_excelfilepath=curr_path+temp/sheet1.xls*filepath=temp/sheet1.xlsIf!File(filepath)Messagebox(数据源的excel文件未生成,报表生成被终止!)ReturnEndifHB1.workbooks.Open(filepath)HB1.SHEETS(sheet1).Selecthb1.sheets(1).Rows(1).entirerow.Inserthb1.sheets(1).Rows(1).entirerow.InsertSele(ctablename)nfieldcount=Fcount()nreccount=Reccount()hbdygs=A1:+Chr(nfieldcount+64)+2HB1.Range(hbdygs).Select*合并两行作为报表标题*HB1.Selection.HorizontalAlignment = 3&水平方向 2左对齐,3居中,4右对齐HB1.Selection.VerticalAlignment = 2&垂直方向 1靠上,2居中,3靠下HB1.Selection.WrapText = .F.& ?HB1.Selection.Orientation = 0& ?HB1.Selection.AddIndent = .F.& ?HB1.Selection.ShrinkToFit = .F.& ?HB1.Selection.MergeCells = .T.& ?HB1.Range(hbdygs).FormulaR1C1 = 请输入报表标题HB1.Range(hbdygs).Characters.Font.Name= 隶书HB1.Range(hbdygs).Characters.Font.FontStyle = 常规HB1.Range(hbdygs).Characters.Font.ColorIndex = 1&字符颜色*根据数据源表结构的宽度设置列的宽度*Copy Stru Exte Totemp/term_struSele0Usetemp/term_struSelect(ctablename)Fori=1Tonfieldcount cvalue=Allt(Field(i)Selectterm_struLoca For Lower(Allt(field_name)=cvalueIf Found() columnname=Chr(i+64)+:+Chr(i+64) hb1.Columns(columnname).ColumnWidth=field_len Endif Sele(ctablename)EndforSeleterm_struUseactivecellname=Chr(nfieldcount+64)+Allt(Str(nreccount+3)*设置数据区域的字体格式*HB1.Range(A3:+activecellname).Characters.Font.Name= 宋体HB1.Range(A3:+activecellname).Characters.Font.Size= 9HB1.Range(A3:+activecellname).Selecthb1.Selection.BorderS(1).LineStyle = .T.hb1.Selection.BorderS(2).linestyle = .T.hb1.Selection.BorderS(3).linestyle = .T.hb1.Selection.BorderS(4).linestyle = .T.hb1.ActiveWorkbook.SaveAs(c:/aa.xls)hb1.Application.Visible=.T.* HB1.ACTIVEWORKBOOK.SAVE &自动保存数据* HB1.ACTIVEWORKB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论