VB操作Excel实现读取写入打印Word文档格式.docx
《VB操作Excel实现读取写入打印Word文档格式.docx》由会员分享,可在线阅读,更多相关《VB操作Excel实现读取写入打印Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
DimxlSheetAsWorksheet
Dimxlrow,sheetIndex,sheetColumnAsInteger
'
fileurl="
D:
\VB英迈\Template\WriteData.xls"
Editable=空值
SetxlBook=xlApp.Workbooks.Open(fileUrl,Editable)'
打开EXCEL模板
SetxlSheet=xlApp.ActiveSheet
--------------------------------------------------------------------------------------------
【2】写入数据的操作
xlSheet.Range(xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,1)).Merge'
合并单元格
xlSheet.Cells(beginRow,1).FormulaR1C1=CustName'
单行插入
xlSheet.Cells(beginRow,1).VerticalAlignment=xlTop'
垂直,写入数据的位置,这里为高
xlSheet.Cells(beginRow,2).HorizontalAlignment=xlHAlignCenter'
水平写入数据的位置,这里为居中
xlSheet.Range(xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,19)).Font.ColorIndex=ConstModule.COLOR_BLUE'
单元格的字体颜色
xlSheet.Range(xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,19)).Font.Bold=True'
单元格的数据为粗体显示
xlSheet.Range(xlSheet.Cells(beginRow,1),xlSheet.Cells(endRow-1,19)).Interior.ColorIndex=ConstModule.COLOR_SILVER'
单元格的背景颜色
定义数组,一次性写入,列子如下:
IfDetailRes.RecordCount>
0Then
DetailRes.MoveFirst
Forrow2=0ToDetailRes.RecordCount-1
DimarrayProduct(50,17)AsString
arrayProduct(row2,0)=DetailRes.Fields("
Product"
arrayProduct(row2,1)=DetailRes.Fields("
rev"
arrayProduct(row2,2)=DetailRes.Fields("
sagm"
arrayProduct(row2,3)=DetailRes.Fields("
sagm_per"
)&
%"
arrayProduct(row2,4)=DetailRes.Fields("
gp"
arrayProduct(row2,5)=DetailRes.Fields("
gp_per"
arrayProduct(row2,6)=DetailRes.Fields("
opex"
arrayProduct(row2,7)=DetailRes.Fields("
opex_per"
arrayProduct(row2,8)=DetailRes.Fields("
oper_profit"
arrayProduct(row2,9)=DetailRes.Fields("
oper_profit_per"
arrayProduct(row2,10)=DetailRes.Fields("
dio"
arrayProduct(row2,11)=DetailRes.Fields("
dpo"
arrayProduct(row2,12)=DetailRes.Fields("
dso"
arrayProduct(row2,13)=DetailRes.Fields("
working_capital"
arrayProduct(row2,14)=DetailRes.Fields("
interests"
arrayProduct(row2,15)=DetailRes.Fields("
pre_tax_income"
arrayProduct(row2,16)=DetailRes.Fields("
roic"
DetailRes.MoveNext
Nextrow2
xlSheet.Range(xlSheet.Cells(beginRow,3),xlSheet.Cells(endRow-1,19))=arrayProduct()'
数组显示
【3-重点】vb操作EXCEL实现数据组合
现在需要把单元格1-4行进行数据组合
在EXCEL中,只要选中单元格1-4行,在
点击菜单>
>
数据>
组及分级显示>
组合即可达到要求!
[注]:
若组合时,收缩时数据显示的是最后的那条,
在EXCEL文件中,点击数据>
>
组及分级显示>
设置>
(1)把明细数据的下方复选框的选中状态改为不选中
(2)把明细数据的右侧复选框的选中状态改为不选中
这样设置数据即可达到显示要求
vb代码如下:
Rows("
10:
15"
).Select
Selection.Rows.Group
若是需要变量传入,则:
Rows(beginRow&
"
endRow-1).Select
VB操作EXCEL,实现数据读取
1、定义Excel操作变量
DimobjExcelFileAsExcel.Application
DimobjWorkBookAsExcel.Workbook
DimobjImportSheetAsExcel.Worksheet
2、打开Excel进程,并打开目标Excel文件
SetobjExcelFile=NewExcel.Application
objExcelFile.DisplayAlerts=False
SetobjWorkBook=objExcelFile.Workbooks.Open(strFileName)
SetobjImportSheet=objWorkBook.Sheets
(1)
3、获取Excel有效区域的行和列数
intLastColNum=objImportSheet.UsedRange.Columns.Count
intLastRowNum=objImportSheet.UsedRange.Rows.Count
4、逐行读取Excel中数据
由于前两行为Header部分,所以需要从第三行读取
如果第1到第10个单元格的值均为空或空格,则视为空行
ForintCountI=3TointLastRowNum
CheckifEmptyDataRow
blnNullRow=True
ForintI=1To10
IfTrim$(objImportSheet.Cells(intCountI,intI).Value)<
Then
blnNullRow=False
EndIf
NextintI
若不是空行,则进行读取动作,否则继续向后遍历Excel中的行
IfblnNullRow=FalseThen
获取单元格中的数据,做有效性Check,并将合法数据创建为实体存入对象数组中
objImportSheet.Cells(intCountI,1).Value
……
NextintCountI
5、退出Excel进程,并关闭Excel相关操作对象
objExcelFile.Quit
SetobjWorkBook=Nothing
SetobjImportSheet=Nothing
SetobjExcelFile=Nothing
基于VB和EXCEL的报表设计及打印
在现代管理信息系统的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表提供给领导决策参考,或进行外部交流。
在VisualBasic中制作报表,通常是用数据环境设计器(DataEnvironmentDesigner)与数据报表设计器(DataReportDesigner),或者使用第三方产品来完成。
但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。
由于Excel具有自己的对象库,在VisualBasic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。
这样实现了VisualBasi应用程序对Excel的控制。
本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。
1)创建Excel对象
Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。
下面简单介绍一下其中最重要,也是用得最多的五个对象。
(1)Application对象
Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。
(2)Workbook对象
Workbook对象直接地处于Application对象的下层,表示一个Excel工作薄文件。
(3)Worksheet对象
Worksheet对象包含于Workbook对象,表示一个Excel工作表。
(4)Range对象
Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。
(5)Cells对象
Cells对象包含于Worksheet对象,表示Excel工作表中的一个单元格。
如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:
DimzsbexcelAsExc