Vb不是人機(jī)對(duì)話窗口,而是編程工具,可以編寫代碼進(jìn)行調(diào)試執(zhí)行或者生成可執(zhí)行文件。
金昌ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
用Visual Studio .Net開發(fā)"Hello World!"程序:
我們知道"Hello World"一般是命令行程序,而這種程序在Visual Studio .Net中被稱為"控制臺(tái)程序"。下面是Visual Studio .Net編寫控制臺(tái)"Hello World!"程序的具體步驟:
(1)、啟動(dòng)Visual Studio .Net。
(2)、選擇菜單【文件】|【新建】|【項(xiàng)目】后,彈出【新建項(xiàng)目】對(duì)話框。
(3)、將【項(xiàng)目類型】設(shè)置為【Visual Basic項(xiàng)目】。
(4)、將【模板】設(shè)置為【控制臺(tái)應(yīng)用程序】。
(5)、在【名稱】文本框中輸入【Hello World】。
(6)、在【位置】的文本框中輸入【E:VS.NET項(xiàng)目】,然后單擊【確定】按鈕,則Visual Studio .Net會(huì)按照上面設(shè)定的參數(shù)創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序項(xiàng)目,具體如圖01所示。
圖01:"Hello World"控制臺(tái)程序的【新建項(xiàng)目】界面
(7)、在【解決方案資源管理器】窗口中,雙擊Module1.vb文件,進(jìn)入Module1.vb文件的編輯界面。
(8)、Visual Studio .Net已經(jīng)為產(chǎn)生Main()函數(shù)。在系統(tǒng)創(chuàng)建的Main()函數(shù)中加入下面一行代碼就可以了:
Console.WriteLine ("Hello World!")
(9)、選擇【文件】|【保存Module1.vb】菜單或者按快捷鍵Ctrl+S,保存所做的修改。
(10)、此時(shí)單擊快捷鍵Ctrl+F5運(yùn)行程序就可以得到圖02所示運(yùn)行界面:
VB是常用的應(yīng)用軟件開發(fā)工具之一,由于VB的報(bào)表功能有限,而且一但報(bào)表格式發(fā)生變化,就得相應(yīng)修改程序,給應(yīng)用軟件的維護(hù)工作帶來極大的不便。因此有很多程序員現(xiàn)在已經(jīng)充分利用EXECL的強(qiáng)大報(bào)表功來實(shí)現(xiàn)報(bào)表功能。但由于VB與EXCEL由于分別屬于不同的應(yīng)用系統(tǒng),如何把它們有機(jī)地結(jié)合在一起,是一個(gè)值得我們研究的課題。
一、 VB讀寫EXCEL表:
VB本身提自動(dòng)化功能可以讀寫EXCEL表,其方法如下:
1、在工程中引用Microsoft Excel類型庫:
從"工程"菜單中選擇"引用"欄;選擇Microsoft Excel 9.0 Object Library(EXCEL2000),然后選擇"確定"。表示在工程中要引用EXCEL類型庫。
2、在通用對(duì)象的聲明過程中定義EXCEL對(duì)象:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
3、在程序中操作EXCEL表常用命令:
Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對(duì)象
Set xlBook = xlApp.Workbooks.Open("文件名") '打開已經(jīng)存在的EXCEL工件簿文件
xlApp.Visible = True '設(shè)置EXCEL對(duì)象可見(或不可見)
Set xlSheet = xlBook.Worksheets("表名") '設(shè)置活動(dòng)工作表
xlSheet.Cells(row, col) =值 '給單元格(row,col)賦值
xlSheet.PrintOut '打印工作表
xlBook.Close (True) '關(guān)閉工作簿
xlApp.Quit '結(jié)束EXCEL對(duì)象
Set xlApp = Nothing '釋放xlApp對(duì)象
xlBook.RunAutoMacros (xlAutoOpen) '運(yùn)行EXCEL啟動(dòng)宏
xlBook.RunAutoMacros (xlAutoClose) '運(yùn)行EXCEL關(guān)閉宏
4、在運(yùn)用以上VB命令操作EXCEL表時(shí),除非設(shè)置EXCEL對(duì)象不可見,否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關(guān)閉EXCEL,同時(shí)也可對(duì)EXCEL進(jìn)行操作。但在EXCEL操作過程中關(guān)閉EXCEL對(duì)象時(shí),VB程序無法知道,如果此時(shí)使用EXCEL對(duì)象,則VB程序會(huì)產(chǎn)生自動(dòng)化錯(cuò)誤。形成VB程序無法完全控制EXCEL的狀況,使得VB與EXCEL脫節(jié)。
二、 EXCEL的宏功能:
EXCEL提供一個(gè)Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點(diǎn)擊右鍵菜單的"插入模塊",則增加一個(gè)"模塊1",在此模塊中可以運(yùn)用Visual Basic語言編寫函數(shù)和過程并稱之為宏。其中,EXCEL有兩個(gè)自動(dòng)宏:一個(gè)是啟動(dòng)宏(Sub Auto_Open()),另一個(gè)是關(guān)閉宏(Sub Auto_Close())。它們的特性是:當(dāng)用EXCEL打含有啟動(dòng)宏的工簿時(shí),就會(huì)自動(dòng)運(yùn)行啟動(dòng)宏,同理,當(dāng)關(guān)閉含有關(guān)閉宏的工作簿時(shí)就會(huì)自動(dòng)運(yùn)行關(guān)閉宏。但是通過VB的自動(dòng)化功能來調(diào)用EXCEL工作表時(shí),啟動(dòng)宏和關(guān)閉宏不會(huì)自動(dòng)運(yùn)行,而需要在VB中通過命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 來運(yùn)行啟動(dòng)宏和關(guān)閉宏。
三、 VB與EXCEL的相互勾通:
充分利用EXCEL的啟動(dòng)宏和關(guān)閉宏,可以實(shí)現(xiàn)VB與EXCEL的相互勾通,其方法如下:
在EXCEL的啟動(dòng)宏中加入一段程序,其功能是在磁盤中寫入一個(gè)標(biāo)志文件,同時(shí)在關(guān)閉宏中加入一段刪除此標(biāo)志文件的程序。VB程序在執(zhí)行時(shí)通過判斷此標(biāo)志文件存在與否來判斷EXCEL是否打開,如果此標(biāo)志文件存在,表明EXCEL對(duì)象正在運(yùn)行,應(yīng)該禁止其它程序的運(yùn)行。如果此標(biāo)志文件不存在,表明EXCEL對(duì)象已被用戶關(guān)閉,此時(shí)如果要使用EXCEL對(duì)象運(yùn)行,必須重新創(chuàng)建EXCEL對(duì)象。
四、舉例:
1、在VB中,建立一個(gè)FORM,在其上放置兩個(gè)命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸入如下程序:
Dim xlApp As Excel.Application '定義EXCEL類
Dim xlBook As Excel.Workbook '定義工件簿類
Dim xlsheet As Excel.Worksheet '定義工作表類
Private Sub Command1_Click() '打開EXCEL過程
If Dir("D:\temp\excel.bz") = "" Then '判斷EXCEL是否打開
Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL應(yīng)用類
xlApp.Visible = True '設(shè)置EXCEL可見
Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打開EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打開EXCEL工作表
xlsheet.Activate '激活工作表
xlsheet.Cells(1, 1) = "abc" '給單元格1行駛列賦值
xlBook.RunAutoMacros (xlAutoOpen) 運(yùn)行EXCEL中的啟動(dòng)宏
Else
MsgBox ("EXCEL已打開")
End If
End Sub
Private Sub Command2_Click()
If Dir("D:\temp\excel.bz") "" Then '由VB關(guān)閉EXCEL
xlBook.RunAutoMacros (xlAutoClose) '執(zhí)行EXCEL關(guān)閉宏
xlBook.Close (True) '關(guān)閉EXCEL工作簿
xlApp.Quit '關(guān)閉EXCEL
End If
Set xlApp = Nothing '釋放EXCEL對(duì)象
End
End Sub
2、在D盤根目錄上建立一個(gè)名為Temp的子目錄,在Temp目錄下建立一個(gè)名為"bb.xls"的EXCEL文件。
3、在"bb.xls"中打開Visual Basic編輯器,在工程窗口中點(diǎn)鼠標(biāo)鍵選擇插入模塊,在模塊中輸入入下程序存盤:
Sub auto_open()
Open "d:\temp\excel.bz" For Output As #1 '寫標(biāo)志文件
Close #1
End Sub
Sub auto_close()
Kill "d:\temp\excel.bz" '刪除標(biāo)志文件
End Sub
4、運(yùn)行VB程序,點(diǎn)擊EXCEL按鈕可以打開EXCEL系統(tǒng),打開EXCEL系統(tǒng)后,VB程序和EXCEL分別屬兩個(gè)不同的應(yīng)用系統(tǒng),均可同時(shí)進(jìn)行操作,由于系統(tǒng)加了判斷,因此在VB程序中重復(fù)點(diǎn)擊EXCEL按鈕時(shí)會(huì)提示EXCEL已打開。如果在EXCEL中關(guān)閉EXCEL后再點(diǎn)EXCEL按鈕,則會(huì)重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關(guān)閉EXCEL。這樣就實(shí)現(xiàn)了VB與EXCEL的無縫連接。
1.如何實(shí)現(xiàn)VB與EXCEL的無縫連接
VB 是常用的應(yīng)用軟件開發(fā)工具之一,由于VB的報(bào)表功能有限,而且一旦報(bào)表格式發(fā)生變化,就得相應(yīng)修改程序,給應(yīng)用軟件的維護(hù)工作帶來極大的不便。因?yàn)橛泻芏喑绦騿T現(xiàn)在已經(jīng)充分利用Excel的強(qiáng)大報(bào)表功能來實(shí)現(xiàn)。但由于VB與Excel分別屬于不同的應(yīng)用系統(tǒng),如何把它們有機(jī)地結(jié)合在一起,是一個(gè)值得我們研究的課題。
筆者在軟件開發(fā)工作中,對(duì)VB的自動(dòng)化功能和Excel的宏功能進(jìn)行了一定的研究,實(shí)現(xiàn)了VB與Excel的有機(jī)結(jié)合。現(xiàn)提出來與大家探討。
一、VB讀寫Excel表
VB本身的自動(dòng)化功能可以讀寫Excel表,其方法如下:
1、在工程中引用Microsoft Excel類型庫:
從“工程”菜單中選擇“引用”欄;選擇Microsoft Excel 9.0 Object Library (Excel2000),然后選擇“確定”。表示在工程中要引用Excel類型庫。
2、在通用對(duì)象的聲明過程中定義Excel對(duì)象:
Dim xlApp As Excel.Application
Dim XlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
3、在程序中操作Excel表常用命令:
Set xlApp = CreateObject (“Excel.Application”)’創(chuàng)建Excel對(duì)象
Set XlBook = xlApp.Workbooks.Open(“文件名”) ’打開已經(jīng)存在的Excel工作薄文件
xlApp.Visible = True ’設(shè)置Excel對(duì)象可見(或不可見)
Set xlSheet = xlBook.Worksheets(“表名”)
xlSheet.Cells(row,col) = 值 ’給單元格(row,col)賦值
xlSheet.PrintOut ’打印工作表
xlBook.CloseTrue ’關(guān)閉工作薄
xlApp.Quit ’結(jié)束Excel對(duì)象
Set xlApp = Nothing ’釋放xlApp對(duì)象
xlBook.RunAutoMacros xlAutoOpen ’運(yùn)行Excel啟動(dòng)宏
xlBook.RunAutoMacros xlAutoClose ’運(yùn)行Excel關(guān)閉宏
4、在運(yùn)用以上VB命令操作Excel表時(shí),除非設(shè)置Excel對(duì)象不可見,否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關(guān)閉Excel,同時(shí)也可對(duì)Excel進(jìn)行操作。但在Excel操作過程中關(guān)閉Excel對(duì)象時(shí),VB無法知道,如果此時(shí)使用Excel對(duì)象,則VB程序會(huì)出現(xiàn)自動(dòng)化錯(cuò)誤,形成VB程序無法完全控制Excel狀況,使得VB與Excel脫節(jié)。
二、Excel的宏功能
Excel 提供了一個(gè)Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點(diǎn)擊右鍵菜單的“插入模塊”,則增加一個(gè)“模塊1”,在此模塊中可以運(yùn)用Visual Basic語言編寫函數(shù)和過程并稱之為宏。其中,Excel有兩個(gè)自動(dòng)宏:一個(gè)是啟動(dòng)宏(Sub Auto_Open()),另一個(gè)是關(guān)閉宏(Sub Auto_Close())。它們的特性是:當(dāng)用Excel打開含有啟動(dòng)宏的工作薄時(shí),就會(huì)自動(dòng)運(yùn)行啟動(dòng)宏,同理,當(dāng)關(guān)閉含有關(guān)閉宏的工作薄時(shí)就會(huì)自動(dòng)運(yùn)行關(guān)閉宏。但是通過VB的自動(dòng)化功能來調(diào)用Excel工作表時(shí),啟動(dòng)宏和關(guān)閉宏不會(huì)自動(dòng)運(yùn)行,而需要在VB中通過命令 xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros(xlAutoClose)來運(yùn)行啟動(dòng)宏和關(guān)閉宏。
三、VB與Excel的相互溝通:
充分利用Excel的啟動(dòng)宏和關(guān)閉宏,可以實(shí)現(xiàn)VB與Excel的相互溝通,其方法如下:
在Excel的啟動(dòng)宏中加入一段程序,其功能是在磁盤中寫入一個(gè)標(biāo)志文件,同時(shí)在關(guān)閉宏中加入一段刪除此標(biāo)志的程序。VB程序在執(zhí)行時(shí)通過判斷此標(biāo)志文件存在與否來判斷Excel是否打開,如果此標(biāo)志文件存在,表明Excel對(duì)象正在運(yùn)行,應(yīng)該禁止其它程序的運(yùn)行。如果此標(biāo)志文件不存在,表明Excel對(duì)象已被關(guān)閉,此時(shí)如果要使用Excel對(duì)象運(yùn)行,必須重新創(chuàng)建Excel對(duì)象。
四、舉例
1、在VB中,建立一個(gè)FORM,在其上放置兩個(gè)命令按鈕,將Command1的Caption屬性改為Excel,Command2的Caption屬性改為End。然后在其中輸入如下程序:
Dim xlApp As Excel.Application '定義Excel類
Dim xlBook As Excel.Workbook '定義工作薄類
Dim XlSheet As Excel.Worksheet '定義工作表類
Private Sub Command1_Click() '打開Excel過程
If Dir(“D:\temp\excel.bz”)= “”Then '判斷Excel是否打開
Set xlApp = CreateObject(“Excel.Application”) '創(chuàng)建Excel應(yīng)用類
xlApp.Visible = True '設(shè)置Excel可見
Set xlBook = xlApp.Workbooks.Open(“D:\temp\bb.xls”) '打開Excel工作薄
Set xlSheet = xlBook.Worksheet(1) '打開Excel工作表
xlSheet.Activate '激活工作表
xlSheet.Cells(1,1) = “abc” '給單元格1行駛列賦值
xlBook.RunAutoMacros(xlAutoOpen) '運(yùn)行Excel中的啟動(dòng)宏
Else
MsgBox(“Excel已打開”)
End If
End Sub
Private Sub Command2_Click()
If Dir(“D:\temp\excel.bz”) “” Then '由VB關(guān)閉Excel
xlBook.RunAutoMacros(xlAutoClose) '執(zhí)行Excel關(guān)閉宏
xlBook.Close(True)關(guān)閉Excel工作薄
xlApp.Quit '關(guān)閉Excel
End If
Set xlApp = Nothing '釋放Excel對(duì)象
End
End Sub
2、在D盤根目錄上建立一個(gè)名為temp的子目錄,在temp目錄下建立一個(gè)名為“bb.xls”的Excel文件。
3、在“bb.xls”中打開Visual Basic編輯器,在工程窗口中點(diǎn)鼠標(biāo)鍵選擇插入模塊,在模塊中輸入以下程序存盤:
Sub auto_open()
Open “d:\temp\excel.bz” For Output As #1
Close #1
End Sub
Sub auto_close()
Kill “d:\temp\excel.bz”
End Sub
4、運(yùn)行VB程序,點(diǎn)擊Excel按鈕可以打開Excel系統(tǒng),打開Excel系統(tǒng)后,VB程序和Excel分別屬兩個(gè)不同的應(yīng)用系統(tǒng),均可同時(shí)進(jìn)行操作,由于系統(tǒng)加了判斷,因此在VB程序中重復(fù)點(diǎn)擊Excel按鈕時(shí)會(huì)提示Excel已打開。如果在Excel中關(guān)閉Excel后再點(diǎn)Excel按鈕,則會(huì)重新打開Excel。而無論Excel打開與否,通過VB程序均可關(guān)閉Excel。這樣就實(shí)現(xiàn)了VB與Excel的無縫連接。
2.用VB.NET結(jié)合Excel設(shè)計(jì)統(tǒng)計(jì)生產(chǎn)報(bào)表
用EXCEL做企業(yè)生產(chǎn)報(bào)表的理由
Excel表格生成和公式設(shè)置十分強(qiáng)大便利,是一個(gè)強(qiáng)有力的信息分析與處理工具。特別是EXCEL的公式、函數(shù)、VBA語言,功能極其強(qiáng)大。我試用過其他電子表格軟件,在功能上和EXCEL根本沒有可比性。
Visual Studio ,NET也同樣是MicroSoft的產(chǎn)品,Visual Studio ,NET調(diào)用EXCEL做企業(yè)報(bào)表十分方便。證明當(dāng)時(shí)我選Visual Studio ,NET作為首選開發(fā)工具是正確的。
軟件構(gòu)思
先在EXCEL里定制好名為《統(tǒng)計(jì)表》的樣表(模版),,在樣表中設(shè)置好各種格式,填寫好固定項(xiàng)。
在窗體上放很三個(gè)控件,兩個(gè)DateTimePicker控件,用來選擇開始統(tǒng)計(jì)時(shí)間和結(jié)束統(tǒng)計(jì)時(shí)間。一個(gè)Button以啟動(dòng)程序。
軟件欲實(shí)現(xiàn)的功能是:點(diǎn)擊Button1,自動(dòng)查找符合日期符合日期范圍的生產(chǎn)計(jì)劃工作表,然后利用SortedList統(tǒng)計(jì)各個(gè)辦事處的計(jì)劃數(shù)量和未完成數(shù)量,及各個(gè)產(chǎn)品型號(hào)的計(jì)劃數(shù)量和未完成數(shù)量。再把SortedList的數(shù)據(jù)讀出寫到《統(tǒng)計(jì)表》中。
這里要注意的是,各個(gè)生產(chǎn)報(bào)表格式必須規(guī)范統(tǒng)一,因?yàn)槌绦蚴前凑展潭▎卧裎恢米x取數(shù)據(jù)的。
SortedList類
除了具備VB,NET調(diào)用EXCEL的基礎(chǔ)知識(shí)外,本例主要用到SortedList類。
SortedList類表示鍵/值對(duì)的集合,這些鍵和值按鍵排序并可按照鍵和索引訪問。
SortedList 是 Hashtable 和 Array 的混合。當(dāng)使用 Item 索引器屬性按照元素的鍵訪問元素時(shí),其行為類似于 Hashtable。當(dāng)使用 GetByIndex 或 SetByIndex 按照元素的索引訪問元素時(shí),其行為類似于 Array。
SortedList 在內(nèi)部維護(hù)兩個(gè)數(shù)組以將數(shù)組存儲(chǔ)到列表中;即,一個(gè)數(shù)組用于鍵,另一個(gè)數(shù)組用于相關(guān)聯(lián)的值。每個(gè)元素都是一個(gè)可作為 DictionaryEntry 對(duì)象進(jìn)行訪問的鍵/值對(duì)。鍵不能為空引用(Visual Basic 中為 Nothing),但值可以。
SortedList 的容量是列表可擁有的元素?cái)?shù)。隨著向 SortedList 中添加元素,容量通過重新分配按需自動(dòng)增加。可通過調(diào)用 TrimToSize 或通過顯式設(shè)置 Capacity 屬性減少容量。
SortedList 的元素將按照特定的 IComparer 實(shí)現(xiàn)(在創(chuàng)建 SortedList 時(shí)指定)或按照鍵本身提供的 IComparable 實(shí)現(xiàn)并依據(jù)鍵來進(jìn)行排序。不論在哪種情況下,SortedList 都不允許重復(fù)鍵。
VB,NET結(jié)合EXCEL統(tǒng)計(jì)生產(chǎn)報(bào)表
以下是實(shí)現(xiàn)代碼,供參考。為方便初學(xué)者,部份地方加以注釋。
現(xiàn)在讓我們來試用一下,先選擇開始統(tǒng)計(jì)時(shí)間和結(jié)束統(tǒng)計(jì)時(shí)間,點(diǎn)擊Button1,程序就自動(dòng)統(tǒng)計(jì)出各個(gè)辦事處的及各個(gè)產(chǎn)品的有關(guān)計(jì)劃數(shù)量及未完成數(shù)量,是不是很方便。
1 打開Excel dim myexcelas new Excel.Application() myexcel.visible=true
2 添加新的工作簿myexcel.Workbooks.add()
3 設(shè)定第二個(gè)工作表為活動(dòng)工作表myexcel.worksheets(2).Acivate()
4 打開指定的Excel文件myexcel.workbooks.open(“c:\my.xls”)
5 顯示Excel窗口myexcel.visible=true
6 更改Excel的標(biāo)題欄myexcel.caption=“歡迎,歡迎!”
7 為Excel的單元格賦值myexcel.cells(1,4).value=100 此語句使Excel當(dāng)前工作表的第一行第四列,即D1單元格等于100, 也可以這樣寫: myexcel.Range(“D1”).value=100
8 設(shè)置指定列的寬度(單位:字符個(gè)數(shù))myexcel.ActiveSheet.colums(1).columnwidth=20 設(shè)定當(dāng)前工作表第1列的寬度為20
9 設(shè)置指定行的高(單位:磅)myexcel.ActiveSheet.rows(1).rowHeight=1/0.035 1磅 =0.035厘米設(shè)置第1行的高度為1CM
10 插入分頁符 myexcel.Activesheet.rows(20).pagebreak=1在第20行前插入分頁符
11 刪除分頁符myexcel.Activesheet.columns(20).pagebreak=0 在第20列前刪除分頁符
12 指定邊框線的寬度myexcel.Activesheet.range(“B3:D3”).borders(1).weight=3 其中borders參數(shù)指定單元格邊框的位置:1:左 2:右 3:頂 4:底 5:斜\ 6:斜/
13 指定邊框線條的類型 myexcel.Activesheet.range(“B1:D3”).borders(2).linestyle=1此語句將當(dāng)前工作表的B1:D3單元格的右邊框設(shè)置為實(shí)線 linestyle參數(shù): 1:細(xì)實(shí)線 2:細(xì)虛線 3:點(diǎn)虛線 4:雙細(xì)實(shí)線
14 設(shè)置頁腳myexcel.activesheet.pagesetup.centerfooter=“第p頁” 注意:設(shè)置頁眉頁腳時(shí)要保證計(jì)算機(jī)上裝有打印機(jī),否則出錯(cuò)!
15 設(shè)置頁眉myexcel.activesheet.pagesetup.centerfooter=“第p頁”
16 設(shè)置頁眉到頂斷距離為2cmmyexcel.Activesheet.pagesetup.Headermargin=2/0.035
17 設(shè)置頁腳到底端距離為2cmmyexcel.Activesheet.pagesetup.Footermargin=2/0.035
18 設(shè)置頂邊邊距為2cmmyexcel.Activesheet.pagesetup.topmargin=2/0.035
19 設(shè)置底邊邊距為2cmmyexcel.Activesheet.pagesetup.Bottommargin=2/0.035
20 設(shè)置左邊邊距為2cmmyexcel.Activesheet.pagesetup.Leftmargin=2/0.035
21 設(shè)置右邊邊距為2cmmyexcel.Activesheet.pagesetup.Rightmargin=2/0.035
22 設(shè)置頁面水平居中myexcel.activesheet.pagesetup.CenterHorizontally=true
23 設(shè)置頁面垂直居中myexcel.activesheet.pagesetup.Centervertically=true
24 設(shè)置頁面紙張大小 (1,窄行8.511 ;39 ,寬行1411) myexcel.activesheet.pagesetup.papersize=1
25 打印單元格網(wǎng)格線 myexcel.activesheet.pagesetup.PrintGridlines=true
26 復(fù)制整個(gè)工作表 myexcel.activesheet.Usedrange.Copy
27 復(fù)制指定區(qū)域 myexcel.activesheet.range(“a1:b5”).Copy
28 粘貼 myexcel.worksheets(“sheet2”).range(“A1”).PasteSpecial
29 在第2行前插入一行 myexcel.activesheet.rows(2).Insert
30 在第2列前插入一列 myexcel.Activesheet.Columns(2).Insert
31 合并 C4:D4 單元格 myexcel.Activesheet.Range(“C4:D4”).Merge()
32 自動(dòng)調(diào)整第2列列寬 myexcel.activesheet.Columns(2).AutoFit
33 設(shè)置字體myexcel.Activesheet.cells(2,1).font.name=“黑體”
34 設(shè)置字體大小myexcel.Activesheet.cells(2,1).font.size=25
35 設(shè)置字體為斜體 myexcel.Activesheet.cells(2,1).font.Italic=true
36 設(shè)置字體為粗體 myexcel.Activesheet.cells(2,1).font.Bold=true
37 清除單元格內(nèi)容myexcel.activesheet.cells(2,1).ClearContents
38 打印預(yù)覽工作表myexcel.Activesheet.PrintPreview
39 打印工作表 myexcel.Activesheet.Printout
40 工作表另存為myexcel.ActiveWorkbook.saveas(“C:\book2.xls”)
41 放棄存盤 myexcel.ActiveWorkbook.saved=false
42 關(guān)閉工作簿 myexcel.Workbooks.close
43 退出 Excel myexcel.quit
44 紙張橫向:myexcel.activesheet.PageSetup.OrientaTion=2(1縱向)
45 單元格居中:cells(2,1).HorizontalAlignment=Excel.XlHAlign.xlHAlignCenter 水平方向cells(2,1).VerticalAlignment=Excel.XlVAlign.xlVAlignCenter 垂直方向
打開CSDN APP,看更多技術(shù)內(nèi)容
VB調(diào)用Excel軟件實(shí)現(xiàn)打印預(yù)覽功能
摘要:VB源碼,報(bào)表打印,打印預(yù)覽VB調(diào)用Excel軟件實(shí)現(xiàn)打印預(yù)覽功能,可以插入折線圖,VB打印預(yù)覽功能示例源碼,分享給大家參考。
用vb操作EXCEL打印報(bào)表
最近使用vb來打印報(bào)表,打印出來的EXCEL一直無法上傳到ftp 反復(fù)多次問題都沒解決, 200 PORT command successful. Consider using PASV. 問題出在這,由于win10的防火墻的原因,關(guān)閉防火墻后問題得到解決. 轉(zhuǎn)載于:...
繼續(xù)訪問
VB操作excel 格式設(shè)置及打印頁面設(shè)置(精簡)
langue:VB Set ExcelApp = CreateObject("Excel.Application") ’創(chuàng)建資源,建立連接 Set ExcelBook = ExcelApp.Workbooks.Open(“d:\pipo\index.htm") Set ExcelSheet = ExcelBook.Worksheet...
繼續(xù)訪問
vb.net excel操作:填充人事檔案表并打印
節(jié)選自:《Visual Basic.Net 循序漸進(jìn)》【例 21.7】【項(xiàng)目:code21-007】填充人事檔案表并打印。 本例使用到的Excel文件為:職員信息登記表.xlsx,如下圖所示: 圖21-10 職員信息登記表 窗體設(shè)計(jì)如下圖所示(注意:為了演示方便,已經(jīng)填充了數(shù)據(jù)): 圖21-11 窗體設(shè)計(jì) 在本例中還需要掌握的知識(shí): 1、插入圖片到指定位置 Worksheet.Shapes.AddPicture(Filename, LinkToFile, SaveWithDocumen
繼續(xù)訪問
vb.net操作Excel常用命令
轉(zhuǎn)載: 首先,須在項(xiàng)目里引用: 添加引用-Com-Microsoft Excel 9.0 Object Library (這是EXCEL2000) 1 打開Excel: dim myexcel as new Excel.Application() myexcel.visib...
繼續(xù)訪問
vb.net 如何實(shí)現(xiàn)報(bào)表打印_Excel如何實(shí)現(xiàn)分類別打印?創(chuàng)建組輕松實(shí)現(xiàn)
有朋友咨詢個(gè)關(guān)于Excel打印數(shù)據(jù)問題,他的需求是這樣的:下表中是某公司人員信息表,現(xiàn)在領(lǐng)導(dǎo)要求將表格分部門打印出來,每位員工核對(duì)個(gè)人信息并簽字。需求很明確,就是將相同部門的人員打印到一張紙上。打印很簡單,難點(diǎn)在于如何按每個(gè)部門去打???如果部門較少的話可以將不同部門復(fù)制到不同插頁中,再進(jìn)行打??;但是如果部門較多的話,這種辦法實(shí)在不可??;有小伙伴表示可以利用VBA技術(shù)將部門拆分到各個(gè)插頁,在進(jìn)行打印...
繼續(xù)訪問
最新發(fā)布 vb.net 教程 11-1 打印組件 3 PageSetupDialog
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)?jiān)陲@著位置標(biāo)明本文出處以及作者網(wǎng)名,未經(jīng)作者允許不得用于商業(yè)目的。 本節(jié)談?wù)劻硗庖粋€(gè)有關(guān)打印的對(duì)話框:PageSetupDialog,頁面設(shè)置對(duì)話框 實(shí)際我們是通過這個(gè)對(duì)話框獲得PageSetting,關(guān)于PageSetting在上一節(jié)有部分介紹,請(qǐng)參看 vb.net 教程 11-1 打印組件 PrintDialog 2 注意的是,使用PageSetupDialog需要綁定一個(gè)PrintDocument,在PageSetupDialog的Document屬性處
繼續(xù)訪問
VB.NET使用EXCEL常見操作
首先,須在項(xiàng)目里引用: 添加引用Microsoft.Office.Interop.Excel Imports Excel = Microsoft.Office.Interop.Excel 1 打開Excel: Dim myexcel as new Excel.Application() myexcel.visible=true 2 添加新的工作簿: myexcel.Workbooks.ad
繼續(xù)訪問
【VB Excel】VB 操作Excel基本步驟
VB操作EXCEL,實(shí)現(xiàn)數(shù)據(jù)讀取 1、定義Excel操作變量 Dim objExcelFile As Excel.Application Dim objWorkBook As Excel.Workbook Dim objImportSheet As Excel.Worksheet 2、打開Excel進(jìn)程,并打開目標(biāo)Exc...
繼續(xù)訪問
vba代碼編程800例_如何設(shè)置Excel打印格式,學(xué)會(huì)這個(gè)VBA對(duì)象就可以隨心所欲
NO.1 Excel如何設(shè)置打印格式使用vba可以做打印格式處理,如何做一個(gè)漂亮的打印頁面,不外乎要設(shè)置打印表格的邊框、版式、頁眉、頁角等等。那么怎樣設(shè)置這些格式呢?NO.2 PageSetup對(duì)象vba編程用到Pagesetup對(duì)象,對(duì)表格打印進(jìn)行設(shè)置。PageSetup對(duì)象有許多屬性,下面圖片里列出了大部分常用的屬性,可以對(duì)照進(jìn)行設(shè)置。具體方法下面舉個(gè)例子來展示一下最終效果。PageSetup...
繼續(xù)訪問
vb.net操作excel文件
[轉(zhuǎn)自] vb.net操作excel文件 要求將數(shù)據(jù)顯示在Excel表中,并且要設(shè)好數(shù)據(jù)格式。雖說如此,真正實(shí)現(xiàn)了自己的功能,還是費(fèi)了不少時(shí)間。相信還是有很多與我相似的人需要實(shí)現(xiàn)這種功能。那就做個(gè)小結(jié)吧。不妥之處,請(qǐng)指正哦。 1.添加引用–com—microsoft excel 11.0 object library 2在需要訪問excel的過程中定義 dim exapp as excel.a
繼續(xù)訪問
VB.net使用PrintForm打印窗體
在VS2010中內(nèi)置了了一個(gè)PowerPacks的擴(kuò)展包,果然很好用啊,可以直接打印窗體內(nèi)容 先從"工具箱"中拖一個(gè)PrintForm到設(shè)計(jì)好的窗體中 然后在窗體里加了個(gè)打印的按鈕,對(duì)應(yīng)代碼如下 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
繼續(xù)訪問
熱門推薦 開源:.NET環(huán)境下有關(guān)打印頁面設(shè)置、打印機(jī)設(shè)置、打印預(yù)覽對(duì)話框的實(shí)現(xiàn)與應(yīng)用(2)
!--google_ad_client = "pub-0022674553583619";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";google_ad_channel ="";google_color_
繼續(xù)訪問
vb.net 設(shè)置打印紙張與頁邊距_機(jī)關(guān)公文格式設(shè)置規(guī)范(最新整理版)
本方法根據(jù)《黨政機(jī)關(guān)公文格式國家標(biāo)準(zhǔn)》(GB/T9704-2012)制定。具體內(nèi)容如下:一、辦公軟件要求適用于微軟OFFICE—WORD文字處理軟件。二、頁面設(shè)置1.選擇“文件”——“頁面設(shè)置”選擇“頁邊距”附簽,上:3.7厘米,下:3.5厘米,左:2.8厘米,右:2.6厘米。2.選擇“紙張”附簽,“紙張大小”設(shè)成“A4”。3.選擇“版式”附簽,將“頁眉和頁腳”設(shè)置成“奇偶頁不同”,在該...
繼續(xù)訪問
VB.NET EXCEL 操作
您好,在Visual Basic.NET中,是沒有像這樣的文件I/O操作的,一般都是通過System.IO.StreamReader和System.IO.StreamWriter類,System.IO.BinaryReader和System.IO.BinaryWriter類來讀寫文件以及利用My.Computer.FileSystem類讀寫文件,利用System.IO.Filestream類來創(chuàng)建文件,通過引用Microsoft Scripting Runtime來執(zhí)行文件(夾)和驅(qū)動(dòng)器的特殊操作,常用的是System.IO.StreamReader和System.IO.StreamWriter類。
例如說要讀取一個(gè)文件,我們可以利用System.IO.StreamReader類編寫一個(gè)方法(也就是函數(shù)),但是首先要在當(dāng)前類的開頭添加一個(gè)引用,引用名稱:System.IO,添加引用的代碼如下
Imports System.IO
添加引用之后,就在當(dāng)前類的內(nèi)部創(chuàng)建方法:
Private Function ReadFile(ByVal FileURL As String) As String
Dim sr As StreamReader = New StreamReader(FileURL)
ReadFile = sr.ReadToEnd()
sr.Close()
sr = Nothing
End Function
示例說明:
該方法是一個(gè)返回String(字符串)數(shù)據(jù)的函數(shù),F(xiàn)ileURL作為參數(shù)是用來存放需要訪問的文件的URL,當(dāng)然,要獲取一個(gè)文件的URL,就是利用這一句代碼實(shí)現(xiàn)的:
Dim sr As StreamReader = New StreamReader(FileURL)
當(dāng)獲取了URL之后,就要對(duì)文件進(jìn)行讀取操作了,然后將讀取的結(jié)果返回給方法:
ReadFile = sr.ReadToEnd()
讀取文件完畢之后,要對(duì)文件執(zhí)行關(guān)閉操作:
sr.Close()
當(dāng)然別忘了清理資源:
sr = Nothing
StreamReader類可以從流或文件中讀取字符,在創(chuàng)建StreamREader類的對(duì)象時(shí),可以指定一個(gè)流對(duì)象,也可以指定一個(gè)文件URL,創(chuàng)建對(duì)象后就可以調(diào)用他的方法,從流中讀取數(shù)據(jù),其常用方法如下:
Peek:返回下一個(gè)可用字符,但不使用它。
Read:讀取輸入流中下一個(gè)字符或一組字符并移動(dòng)流或文件指針。
ReadBlock:從當(dāng)前流中讀取最大數(shù)量字符并從index開始將數(shù)據(jù)寫入buffer。
ReadLine:從當(dāng)前流中讀取一行字符并將字符作為String返回。
REadToEnd:從流的當(dāng)前位置到末尾讀取流。
Close:關(guān)閉打開的對(duì)象,釋放資源。
注:流,一種新的數(shù)據(jù)格式,這種格式可通過System.IO命名空間下的類訪問。流用Stream類表示,所有的流都是從這個(gè)類中繼承的。流向用戶提供了一個(gè)一般的數(shù)據(jù)視圖,隱藏了操作系統(tǒng)和底層設(shè)備的實(shí)現(xiàn)細(xì)節(jié),所有的流都支持讀寫操作。在打開文件時(shí)將返回對(duì)應(yīng)的流對(duì)象,用戶可以對(duì)流對(duì)象進(jìn)行讀寫操作。
如果要對(duì)文件執(zhí)行按行讀取操作,這時(shí)就會(huì)用到枚舉,這時(shí)候,代碼就要更改一下了:
Private Function ReadFile(ByVal FileURL As String) As String
Dim sr As StreamReader = New StreamReader(FileURL)
For Each fLine As String In sr.ReadToEnd()
Line = sr.ReadLine()
ReadFile = ReadFile fLine
Next sr.ReadLine
sr.Close()
End Function
示例說明:
For Each…Next:派生于For…Next循環(huán),用于枚舉一系列對(duì)象中的成員,而這些對(duì)象組成集合,如果集合中至少存在一個(gè)元素,程序就會(huì)靜茹For Each塊執(zhí)行。其格式如下:
For Each 元素 [As 數(shù)據(jù)類型] In 元素集合
[循環(huán)體]
[Exit For]
[循環(huán)體]
Next [元素]
比如:
Dim CountNumber As ULong = 0
Dim FolderName() As String = New String() {" "}
For Each strFolder As String In My.Computer.FileSystem.GetDirectories("C:\")
CountNumber = CountNumber + 1
ReDim Preserve FolderName(1 To CountNumber)
FolderName = strFolder
Next strFolder
注:My.Computer.FileSystem.GetDirectories:主要用來枚舉指定目錄的子文件夾。
Preserve:主要用來避免重定義數(shù)組而不損失數(shù)組元素的原有數(shù)據(jù)。
另外,利用My.Computer.FileSystem也可以實(shí)現(xiàn)文件的讀取,其代碼如下:
Dim fpReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt")
示例說明:
定義一個(gè)字符串變量利用My.Computer.FileSystem.ReadAllText來實(shí)現(xiàn)對(duì)“C:\test.txt”的讀取。
如果是已經(jīng)編碼的文本,則可以使用My.Computer.FileSystem對(duì)象中的ReadAllText方法并提供路徑和文件編碼類型,將文本寫入字符串變量中,例如:
Dim fpReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt", _
System.Text.Encoding.UTF32)
當(dāng)然,System.Text.Encoding的成員不止一個(gè),它還有如下成員:
System.Text.Encoding.UTF8
System.Text.Encoding.UTF16
System.Text.Encoding.ASCII
System.Text.Encoding.Unicode
這些是常見的成員,也是主要的成員。
另外,利用My.Computer.Filesystem類無法實(shí)現(xiàn)文件的行操作,還有,如果您的計(jì)算機(jī)未安裝完整的Microsoft.NET Framework Runtime,則無法實(shí)現(xiàn)這種操作!
寫入文件的操作同樣簡單,Visual Basic.NET 允許用戶使用StreamWriter來對(duì)文件寫入內(nèi)容,下面就讓我們來創(chuàng)建一個(gè)子例程,來實(shí)現(xiàn)文件的寫入:
Private Sub WriterFile(ByVal FileURL As String, ByVal FileCon As String)
Dim sr As StreamWriter = New StreamWriter(FileURL)
sr.Write(FileCon)
sr.Close()
sr = Nothing
End Sub
示例說明:
sr.Write(FileCon):將FileCon寫入文件FileURL之中。
另外,StreamWriter常用方法如下:
WriteLine:向流中寫入一行,后面跟結(jié)束符。
Write:寫入流,向流對(duì)象中寫入字符并移動(dòng)流或文件指針。
Close:關(guān)閉打開的對(duì)象,釋放資源。
附:Visual Basic 6.0文件操作解說:
打開: Open 文件名 For Input | Output | Append As [#]文件號(hào)
Input打開讀入,文件不存在報(bào)錯(cuò)。Output打開覆蓋寫入,文件不存在則創(chuàng)建。Append打 開追加寫入,文件不存在則創(chuàng)建。
讀: Line Input #文件號(hào), 字符串變量
讀一行數(shù)據(jù)存入字符串變量,數(shù)據(jù)包括空格、Tab、等,不包括回車符和換行符,所以要顯示文件的換行效果,要手動(dòng)添加回車符和換行符(vbCrLf)
Input #文件號(hào), 變量1[, | ;] [變量2]...
這種方式可以存入多個(gè)變量,而且變量類型不限于字符串型。
寫: Print #文件號(hào), 參數(shù)1[, | ;] [參數(shù)2]...
將各參數(shù)逐個(gè)寫入文件。參數(shù)間用逗號(hào)隔開時(shí),文件中相應(yīng)插入多個(gè)空格;用分號(hào)隔開時(shí),插入一個(gè)空格??梢杂肧pc(n)、Tab(n)等進(jìn)行排版。
Write #文件號(hào), 參數(shù)1[, | ;] [參數(shù)2]...
這種寫入方式將自動(dòng)添加界定符,對(duì)不同參數(shù)的類型加以界定。
Visual Basic 6.0文件操作函數(shù):
Seek: Seek(文件號(hào))
返回文件正在訪問的位置,返回值為長整型。對(duì)順序文件和二進(jìn)制文件,返回值以字節(jié)為單位;對(duì)隨機(jī)訪問文件,返回值以記錄號(hào)為單位。
Seek: Seek [#]文件號(hào),位置
定位文件到指定位置。位置單位同上所述。
Input: Input (字節(jié)數(shù),[#]文件號(hào))
從文件的訪問當(dāng)前位置讀入指定字節(jié)數(shù)的數(shù)據(jù)。僅適用于順序文件和二進(jìn)制文件。
EOF: EOF(文件號(hào))
判斷文件的訪問位置是否在文件尾,如果是,返回True,否則,返回False。
LOF: LOF(文件號(hào))
返回文件長度,單位為字節(jié)。
FileLen: FileLen (文件名)
返回文件名對(duì)應(yīng)文件的長度,單位是字節(jié)。該函數(shù)取磁盤文件標(biāo)識(shí)中的長度,即文件打開前的長度,可以取未打開的文件長度。
GetAttr: GetAttr (Pathname)
返回指定文件或文件夾的屬性。
FileAttr: FileAttr (文件號(hào))
返回文件號(hào)對(duì)應(yīng)文件的打開方式。
GetDateTime: GetDateTime (Pathname)
返回文件被創(chuàng)建或修改的最后日期和時(shí)間。
Free: FreeFile[(0|1)]
返回未被占用的文件號(hào),F(xiàn)ree或Free(0)返回1~255之間未占用的文件號(hào),F(xiàn)ree(1)返回256~511之間未占用的文件。
Dir: Dir (Pathname [,Attributes])
測(cè)試指定路徑是否有某文件,Attributes附加文件屬性條件,取值vbNormal、vbReadOnly、vbHidden、vbSystem、vbVolume、vbDirectory。
Kill: Kill (文件名)
刪除指定文件,文件名可包含路徑。
FileCopy: FileCopy 源文件,目標(biāo)文件
拷貝文件。
Name: Name 舊文件名 As 新文件名
文件重命名。前后路徑不一致時(shí),操作為移動(dòng)文件并重命名。
MkDir: MkDir path
新建文件夾。
RmDir: Rmdir path
刪除文件夾。
ChDrive: ChDrive Drive
改變當(dāng)前驅(qū)動(dòng)器 ChDrive "D"
CurDir: CurDir [(driver)]
返回當(dāng)前工作路徑,指定driver則返回目標(biāo)驅(qū)動(dòng)器的當(dāng)前工作路徑。
舉例:
'新建文件,并寫入數(shù)據(jù),關(guān)閉
Open "a.txt" For Output As #1
Print #1, "ABCDEFG"; vbCrLf; "HIJK"
Close #1
'打開文件,并全部寫入新文件,關(guān)閉
Open "a.txt" For Input As #2
Open "b.txt" For Output As #3
Dim str As String
While (Not EOF(2))
Line Input #2, str
Print #3, str
Wend
Close
注:關(guān)于Visual Basic 6.0的文件操作資料來自于
如果您覺得我的回答幫助了您解決難題,別忘了采納哦,如果我的回答未能解決您的問題,您可以在互聯(lián)網(wǎng)上尋找更多的解決方案!
private void ExportExcelFromDataGrid
( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader ("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.Default;//設(shè)置輸出流為簡體中文
Response.ContentType = "application/ms-excel";//設(shè)置輸出文件類型為excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad =
new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter =
new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
private void Button4_Click(object sender, System.EventArgs e)
...{
this.Panel1.Visible = false;
string filename = "內(nèi)訓(xùn)師.xls";
this.DataGrid1.Columns[6].Visible = true;
this.DataGrid1.Columns[7].Visible = true;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false; // *
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false; // *
this.DataGrid1.AllowSorting = false; // *
this.DataGrid1.AllowPaging = false;
this.DataGrid1.SelectedIndex = -1; // *
this.BindGrid();
this.ExportExcelFromDataGrid ( filename , this.DataGrid1 );
}
}
原理是利用DataGrid(其實(shí)是其父類Control)的RenderControl方法輸出,整個(gè)DataGrid的外觀時(shí),將這些HTML代碼寫入到緩沖區(qū),同時(shí)設(shè)置一下 ContentType ,讓Excel自己的自動(dòng)糾錯(cuò)功能將這個(gè)輸出存為一個(gè)Excel文件。
很多網(wǎng)上的朋友使用了以上這種可粘貼性強(qiáng)的代碼,發(fā)現(xiàn)不好用,反映的錯(cuò)誤類似:
“LinkButton必須放在一個(gè)具有runat=server的標(biāo)簽的Form”之類的話,而更多的網(wǎng)友說:
問題很明顯,因?yàn)镈ataGrid沒有放在runat=server 的Form里面,加上就可以了。
我認(rèn)為,這種回答是很不準(zhǔn)確的,理由如下:
通常使用這種代碼的人他/她的DataGrid,最起碼已經(jīng)能用了,所以必定放在那個(gè)具有runat=server 的form標(biāo)簽里了。 報(bào)錯(cuò)是LinkButton,而不是DataGrid,很多細(xì)心的朋友很可能會(huì)說,我一直在用DataGrid,LinkButton在哪里來的。 其實(shí)真正的問題是,上面的代碼沒有加了 // * 的那幾行代碼引起的。
當(dāng)然如果你的DataGrid,沒有排序,沒有使用那種按鈕列的話,是不會(huì)出問題的。
言歸正傳,LinkButtion其實(shí)是你將DataGrid設(shè)為可排序時(shí)候,的表頭包含的,所以我要將DataGrid的排序設(shè)為False。
同樣得到上面的其實(shí),那些按鈕列,什么"編輯"、“刪除”等等這些,也是用了LinkButton,把他設(shè)為不可見就是了。
其實(shí)說得再明白一點(diǎn)就是,將有可能產(chǎn)生LinkButton,或其他控件的東西都不讓它輸出就是了
vb.net dataGridView中的數(shù)據(jù)導(dǎo)出為excel表2010-03-01 15:03在form1窗體里添加一個(gè)dataGridView1(根據(jù)自己是使用情況要給他命名,符合命名規(guī)范喲。)在添加一個(gè)Button1(命名)。記著,dataGridView的屬性里有一個(gè)allowUsersToAddRows,要設(shè)置成FALSE。否則會(huì)發(fā)生一個(gè)錯(cuò)誤,當(dāng)然錯(cuò)誤是什么你自己試一下就ok了。
還有一點(diǎn)要注意:因?yàn)槟阋玫絜xcel表,所以要首先在項(xiàng)目里添加引用喲:項(xiàng)目(project)-添加引用(add reference)-Microsoft .Office.Interop.Excel
Button1的代碼:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'要先添加引用才能用到 Microsoft.Office.Interop.Excel.Application()
Dim MyExcel As New Microsoft.Office.Interop.Excel.Application()
MyExcel.Application.Workbooks.Add(True)
MyExcel.Visible = True
'去除dataGridView1的編號(hào)列(這里也可以不要)
Dim m As Integer
For m = 0 To DataGridView1.ColumnCount - 1
MyExcel.Cells(1, m + 1) = Me.DataGridView1.Columns(m).HeaderText
Next m
'往excel表里添加數(shù)據(jù)
Dim i As Integer
For i = 0 To DataGridView1.RowCount - 1
Dim j As Integer
For j = 0 To DataGridView1.ColumnCount - 1
If Me.DataGridView1(j, i).Value Is System.DBNull.Value Then
MyExcel.Cells(i + 2, j + 1) = ""
Else
MyExcel.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString
End If
Next j
Next i
End Sub