基於VB和EXCEL的報表設計及列印
文/朱詩兵 高栓
在現代管理資訊系統的開發中,經常涉及到資料資訊的分析、加工,
最終還需把統計結果形成各種形式的報表提供給領導決策參考,或進行外
部交流。在Visual Basic中製作報表,通常是用資料環境設計器(Data
Environment Designer)與資料包表設計器(Data Report Designer),或者
使用第三方產品來完成。但對於大多數習慣於Excel報表的使用者而言,用以
上方法生成的報表在格式和功能等方面往往不能滿足他們的要求。
由於Excel具有自己的物件庫,在Visual Basic工程中可以加以引用,
透過對Excel使用OLE自動化,可以建立一些外觀整潔的報表,然後列印輸
出。這樣實現了Visual Basi應用程式對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並建立了一個新的包含一個工作表的工作薄:
Dim zsbexcel As Excel.Application
Set zsbexcel = New Excel.Application
zsbexcel.Visible = True
如要Excel不可見,可使zsbexcel.Visible = False
zsbexcel.SheetsInNewWorkbook = 1
Set zsbworkbook = zsbexcel.Workbooks.Add
2)設定單元格和區域值
要設定一張工作表中每個單元格的值,可以使用Worksheet物件的
Range屬性或Cells屬性。
With zsbexcel.ActiveSheet
.Cells(1, 2).Value = "100"
.Cells(2, 2).Value = "200"
.Cells(3, 2).Value = "=SUM(B1:B2)"
.Range("A3:A9") = "中國人民解放軍"
End With
要設定單元格或區域的字型、邊框,可以利用Range物件或Cells物件
的Borders屬性和Font屬性:
With objexcel.ActiveSheet.Range("A2:K9").Borders '邊框設定
.LineStyle. = xlBorderLineStyleContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With objexcel.ActiveSheet.Range("A3:K9").Font '字型設定
.Size = 14
.Bold = True
.Italic = True
.ColorIndex = 3
End With
透過對Excel單元格和區域值的各種設定的深入瞭解,可以建立各種復
雜、美觀、滿足需要的、具有自己特點的報表。
3)預覽及列印
生成所需要的工作表後,就可以對EXCEL發出預覽、列印指令了。
zsbexcel.ActiveSheet.PageSetup.Orientation = xlPortrait '
設定列印方向
zsbexcel.ActiveSheet.PageSetup.PaperSize = xlPaperA4 '
設定列印紙的打下
zsbexcel.Caption = "列印預覽" '設定預覽視窗的
標題
zsbexcel.ActiveSheet.PrintPreview '列印預覽
zsbexcel.ActiveSheet.PrintOut '列印輸出
透過列印方向、列印紙張大小的設定,不斷進行預覽,直到滿意為止,
最終進行列印輸出。
為了在退出應用程式後EXCEL不提示使用者是否儲存已修改的檔案,需使
用如下語句:
zsbexcel.DisplayAlerts = False
zsbexcel.Quit '退出EXCEL
zsbexcel.DisplayAlerts = True
如此設計的報表列印是透過 EXCEL程式來後臺實現的。對於使用者來
說,根本看不到具體過程,只看到一張張漂亮的報表輕易地被列印出來了。
4)具體例項
下面給出一個具體例項,它在window98、Visual Basic 6.0、
Microsoft Office97的環境下除錯透過。
在VB中啟動一個新的Standard EXE工程,在“工程”選單的“引用”
選項下引用Excel Object Library;然後在Form中新增一個命令按鈕
cmdExcel;最後在窗體中輸入如下程式碼:
Dim zsbexcel As Excel.Application
Private Sub cmdExcel_Click()
Set zsbexcel = New Excel.Application
zsbexcel.Visible = True
zsbexcel.SheetsInNewWorkbook = 1
Set zsbworkbook = zsbexcel.Workbooks.Add
With zsbexcel.ActiveSheet.Range("A2:C9").Borders '邊框設定
.LineStyle. = xlBorderLineStyleContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With zsbexcel.ActiveSheet.Range("A3:C9").Font '字型設定
.Size = 14
.Bold = True
.Italic = True
.ColorIndex = 3
End With
zsbexcel.ActiveSheet.Rows.HorizontalAlignment =
xlVAlignCenter '水平居中
zsbexcel.ActiveSheet.Rows.VerticalAlignment =
xlVAlignCenter '垂直居中
With zsbexcel.ActiveSheet
.Cells(1, 2).Value = "100"
.Cells(2, 2).Value = "200"
.Cells(3, 2).Value = "=SUM(B1:B2)"
.Cells(1, 3).Value = "中國人民解放軍"
.Range("A3:A9") = "50"
End With
zsbexcel.ActiveSheet.PageSetup.Orientation = xlPortrait '
xlLandscape
zsbexcel.ActiveSheet.PageSetup.PaperSize = xlPaperA4
zsbexcel.ActiveSheet.PrintOut
zsbexcel.DisplayAlerts = False
zsbexcel.Quit
zsbexcel.DisplayAlerts = True
Set zsbexcel = Nothing
在現代管理資訊系統的開發中,經常涉及到資料資訊的分析、加工,
最終還需把統計結果形成各種形式的報表提供給領導決策參考,或進行外
部交流。在Visual Basic中製作報表,通常是用資料環境設計器(Data
Environment Designer)與資料包表設計器(Data Report Designer),或者
使用第三方產品來完成。但對於大多數習慣於Excel報表的使用者而言,用以
上方法生成的報表在格式和功能等方面往往不能滿足他們的要求。
由於Excel具有自己的物件庫,在Visual Basic工程中可以加以引用,
透過對Excel使用OLE自動化,可以建立一些外觀整潔的報表,然後列印輸
出。這樣實現了Visual Basi應用程式對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並建立了一個新的包含一個工作表的工作薄:
Dim zsbexcel As Excel.Application
Set zsbexcel = New Excel.Application
zsbexcel.Visible = True
如要Excel不可見,可使zsbexcel.Visible = False
zsbexcel.SheetsInNewWorkbook = 1
Set zsbworkbook = zsbexcel.Workbooks.Add
2)設定單元格和區域值
要設定一張工作表中每個單元格的值,可以使用Worksheet物件的
Range屬性或Cells屬性。
With zsbexcel.ActiveSheet
.Cells(1, 2).Value = "100"
.Cells(2, 2).Value = "200"
.Cells(3, 2).Value = "=SUM(B1:B2)"
.Range("A3:A9") = "中國人民解放軍"
End With
要設定單元格或區域的字型、邊框,可以利用Range物件或Cells物件
的Borders屬性和Font屬性:
With objexcel.ActiveSheet.Range("A2:K9").Borders '邊框設定
.LineStyle. = xlBorderLineStyleContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With objexcel.ActiveSheet.Range("A3:K9").Font '字型設定
.Size = 14
.Bold = True
.Italic = True
.ColorIndex = 3
End With
透過對Excel單元格和區域值的各種設定的深入瞭解,可以建立各種復
雜、美觀、滿足需要的、具有自己特點的報表。
3)預覽及列印
生成所需要的工作表後,就可以對EXCEL發出預覽、列印指令了。
zsbexcel.ActiveSheet.PageSetup.Orientation = xlPortrait '
設定列印方向
zsbexcel.ActiveSheet.PageSetup.PaperSize = xlPaperA4 '
設定列印紙的打下
zsbexcel.Caption = "列印預覽" '設定預覽視窗的
標題
zsbexcel.ActiveSheet.PrintPreview '列印預覽
zsbexcel.ActiveSheet.PrintOut '列印輸出
透過列印方向、列印紙張大小的設定,不斷進行預覽,直到滿意為止,
最終進行列印輸出。
為了在退出應用程式後EXCEL不提示使用者是否儲存已修改的檔案,需使
用如下語句:
zsbexcel.DisplayAlerts = False
zsbexcel.Quit '退出EXCEL
zsbexcel.DisplayAlerts = True
如此設計的報表列印是透過 EXCEL程式來後臺實現的。對於使用者來
說,根本看不到具體過程,只看到一張張漂亮的報表輕易地被列印出來了。
4)具體例項
下面給出一個具體例項,它在window98、Visual Basic 6.0、
Microsoft Office97的環境下除錯透過。
在VB中啟動一個新的Standard EXE工程,在“工程”選單的“引用”
選項下引用Excel Object Library;然後在Form中新增一個命令按鈕
cmdExcel;最後在窗體中輸入如下程式碼:
Dim zsbexcel As Excel.Application
Private Sub cmdExcel_Click()
Set zsbexcel = New Excel.Application
zsbexcel.Visible = True
zsbexcel.SheetsInNewWorkbook = 1
Set zsbworkbook = zsbexcel.Workbooks.Add
With zsbexcel.ActiveSheet.Range("A2:C9").Borders '邊框設定
.LineStyle. = xlBorderLineStyleContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With zsbexcel.ActiveSheet.Range("A3:C9").Font '字型設定
.Size = 14
.Bold = True
.Italic = True
.ColorIndex = 3
End With
zsbexcel.ActiveSheet.Rows.HorizontalAlignment =
xlVAlignCenter '水平居中
zsbexcel.ActiveSheet.Rows.VerticalAlignment =
xlVAlignCenter '垂直居中
With zsbexcel.ActiveSheet
.Cells(1, 2).Value = "100"
.Cells(2, 2).Value = "200"
.Cells(3, 2).Value = "=SUM(B1:B2)"
.Cells(1, 3).Value = "中國人民解放軍"
.Range("A3:A9") = "50"
End With
zsbexcel.ActiveSheet.PageSetup.Orientation = xlPortrait '
xlLandscape
zsbexcel.ActiveSheet.PageSetup.PaperSize = xlPaperA4
zsbexcel.ActiveSheet.PrintOut
zsbexcel.DisplayAlerts = False
zsbexcel.Quit
zsbexcel.DisplayAlerts = True
Set zsbexcel = Nothing
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-734280/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於shiro RBAC的表設計
- POI的使用及匯出excel報表Excel
- 基於MaxCompute的拉鍊表設計
- 備忘錄——基於rdlc報表實現列印產品標籤
- Python基於Excel生成向量圖層及屬性表資訊:ArcPyPythonExcel
- 1.15 列印的縮放和頁邊距的設定 [Excel教程]Excel
- 基於.NET架構的樹形動態報表設計與應用架構
- 如何鎖定excel表頭兩行 excel每頁固定表頭列印Excel
- Excel如何設定列印區域?Exce列印區域設定教程Excel
- 基於 Laravel 和 Redis 的點贊功能設計LaravelRedis
- 基於 Formily 的表單設計器實現原理分析 ORM
- 幾百萬條的報表咋列印?
- fastreport .net列印普通報表AST
- 基於jquery實現的ExceljQueryExcel
- 如何實現報表的批次列印需求
- excel列印每頁都有標題和表頭怎麼去掉 Excel表格每頁都顯示錶頭Excel
- 基於Vue,ElementUI開發的一款表單設計器VueUI
- 基於EPPlus和NPOI實現的Excel匯入匯出Excel
- 基於FPGA的乘法器原理介紹及設計實現FPGA
- 基於javaEE的土地檔案管理系統的設計及開發Java
- LR.JAVA報表設計器,快速點亮報表設計技能Java
- excel表頭怎麼固定每頁列印都有 excel表頭怎麼固定每頁都有顯示Excel
- 複雜報表設計之動態報表
- 基於Python的Excel處理工具PythonExcel
- 基於 esbuild 的 universal bundler 設計UI
- 基於原型的角色設計方法原型
- 重複造輪子系列——基於FastReport設計列印模板實現桌面端WPF套打和商超POS高度自適應小票列印AST
- 736【畢設課設】基於51微控制器的計程車計價器打表儀器設計
- 基於風險回報設計的遊戲自由度研究遊戲
- 基於Spring Security和 JWT的許可權系統設計SpringJWT
- C#/VB.NET 將Html轉為ExcelC#HTMLExcel
- 求助:EXCEL,VB,實現 CRC16 校驗Excel
- 如何實現報表直接列印需求
- 【線上報表設計】提升報表外觀的15個技巧
- 基於UDP程式設計UDP程式設計
- 基於Cotherm的自動化熱流耦合計算及熱設計最佳化
- 基於MATLAB的水果分級設計Matlab
- 基於FPGA的DDS研究與設計FPGA
- 基於ATmega8的測速計設計