注冊會員,創(chuàng)建你的web開發(fā)資料庫,在vb6開發(fā)環(huán)境下,本人使用excel作過報表,在.net環(huán)境下開發(fā),本人使用水晶報表。但vb.net同樣可以將報表導(dǎo)出到excel和word進行輸出,制作出專業(yè)水平的報表。
具體操作如下:(注:首先需添加引用,選擇com,選擇microsoft word 10.0 object library和microsoft excel 10.0 object library組件)
1.先創(chuàng)建一個datatable,作為數(shù)據(jù)來源,也可以另將其它的數(shù)據(jù)源。
private function creatable() as datatable
dim dt as new datatable()
dt.columns.add("列1", gettype(string))
dt.columns.add("列2", gettype(integer))
dt.columns.add("列3", gettype(string))
dt.columns.add("列4", gettype(string))
dim row, row1 as datarow
row = dt.newrow()
row!列1 = "行1"
row!列2 = 1
row!列3 = "d"
row!列4 = "a"
dt.rows.add(row)
row1 = dt.newrow()
row1!列1 = "行2"
row1!列2 = 12
row1!列3 = "b"
row1!列4 = "c"
dt.rows.add(row1)
return dt
end function
2.將表中的內(nèi)容導(dǎo)出到excel
dim xlapp as new excel.application()
dim xlbook as excel.workbook
dim xlsheet as excel.worksheet
dim rowindex, colindex as integer
rowindex = 1
colindex = 0
xlbook = xlapp.workbooks().add
xlsheet = xlbook.worksheets("sheet1")
dim table as new datatable()
table = creatable()
'將所得到的表的列名,賦值給單元格
dim col as datacolumn
dim row as datarow
for each col in table.columns
colindex = colindex + 1
xlapp.cells(1, colindex) = col.columnname
next
'得到的表所有行,賦值給單元格
for each row in table.rows
rowindex = rowindex + 1
colindex = 0
for each col in table.columns
colindex = colindex + 1
xlapp.cells(rowindex, colindex) = row(col.columnname)
next
next
with xlsheet
.range(.cells(1, 1), .cells(1, colindex)).font.name = "黑體"
'設(shè)標題為黑體字
.range(.cells(1, 1), .cells(1, colindex)).font.bold = true
'標題字體加粗
.range(.cells(1, 1), .cells(rowindex, colindex)).borders.linestyle = 1
'設(shè)表格邊框樣式
end with
with xlsheet.pagesetup
.leftheader = "" & chr(10) & "&""楷體_gb2312,常規(guī)""&10公司名稱:" ' & gsmc
.centerheader = "&""楷體_gb2312,常規(guī)""公司人員情況表&""宋體,常規(guī)""" & chr(10) & "&""楷體_gb2312,常規(guī)""&10日 期:"
.rightheader = "" & chr(10) & "&""楷體_gb2312,常規(guī)""&10單位:"
.leftfooter = "&""楷體_gb2312,常規(guī)""&10制表人:"
.centerfooter = "&""楷體_gb2312,常規(guī)""&10制表日期:"
.rightfooter = "&""楷體_gb2312,常規(guī)""&10第&p頁 共&n頁"
end with
xlapp.visible = true
3.將表中的內(nèi)容導(dǎo)出到word
dim wordapp as new word.application()
dim mydoc as word.document
dim otable as word.table
dim rowindex, colindex as integer
rowindex = 1
colindex = 0
wordapp.documents.add()
mydoc = wordapp.activedocument
dim table as new datatable()
table = creatable()
otable = mydoc.tables.add(range:=mydoc.range(start:=0, end:=0), numrows:=table.rows.count + 1, numcolumns:=table.columns.count)
'將所得到的表的列名,賦值給單元格
dim col as datacolumn
dim row as datarow
for each col in table.columns
colindex = colindex + 1
otable.cell(1, colindex).range.insertafter(col.columnname)
next
'得到的表所有行,賦值給單元格
for each row in table.rows
rowindex = rowindex + 1
colindex = 0
for each col in table.columns
colindex = colindex + 1
otable.cell(rowindex, colindex).range.insertafter(row(col.columnname))
next
next
otable.borders.insidelinestyle = 1
otable.borders.outsidelinestyle = 1
wordapp.visible = true
總結(jié):microsoft word 10.0(版本號)對象庫提供了word的大部分操作。類似的也有microsoft excel 對象庫,我們可以用代碼與word和excel進行會話并控制它們。還有很重要的一點,就是我們必須學(xué)會使用office軟件的“宏”。“宏”是一系列的word(或其它office軟件)命令和指令的組合,都是生成vb代碼。我們可用“工具/宏/錄制新宏”來錄制“宏”,錄制完成后查看“宏”的代碼就可以知道實現(xiàn)此功能的一系列的vb代碼,我們把這些代碼拷貝到vb.net編輯器中,稍微改動后就可以使用。要想做好office開發(fā),必須用好vba和“宏”。