| 发表于:2007-08-23 10:26:3016楼 得分:0 |
需要的命名空间 imports system.io imports microsoft.office imports microsoft.office.interop 可能有部分不需要,我都贴上了.这个区别于上一个方法是可以控制到excel的具体单元格 protected sub ibtnprint_click(byval sender as object, byval e as system.web.ui.imageclickeventargs) handles ibtnprint.click dim oexcel as new excel.application dim obooks as excel.workbooks, obook as excel.workbook dim osheets as excel.sheets, osheet as excel.worksheet dim ocells as excel.range dim sfile as string, stemplate as string '定义一个datatable 'dim dt as datatable = ctype(application.item( "mydatatable "), datatable) 'dim dt as datatable = ctype(gview.datasource, datatable) 'sfile = server.mappath(request.applicationpath) & "\myexcel.xls " ' "../myexcel.xls " ' sfile = server.mappath( ". ") & "\myexcel.xls " '定义模版文件 'stemplate = server.mappath(request.applicationpath) & "\mytemplate.xls " ' "../mytemplate.xls " stemplate = server.mappath( ". ") & "\mytemplate.xls " oexcel.visible = false oexcel.displayalerts = false '定义一个新的工作簿 obooks = oexcel.workbooks 'obooks.open(server.mappath(request.applicationpath) & "\mytemplate.xls ") obooks.open(server.mappath( ". ") & "\mytemplate.xls ") obook = obooks.item(1) osheets = obook.worksheets osheet = ctype(osheets.item(1), excel.worksheet) '命名该sheet osheet.name = "first sheet " ocells = osheet.cells '调用dumpdata过程,将数据导入到excel中去 dumpdata(ocells) '保存 osheet.saveas(sfile) 'osheet.saveas( "../myexcel.xls ") obook.close() '退出excel,并且释放调用的com资源 oexcel.quit() releasecomobject(ocells) : releasecomobject(osheet) releasecomobject(osheets) : releasecomobject(obook) releasecomobject(obooks) : releasecomobject(oexcel) oexcel = nothing : obooks = nothing : obook = nothing osheets = nothing : osheet = nothing : ocells = nothing system.gc.collect() response.redirect( "../wellb/myexcel.xls ") exit sub '将datatable的内容导出到excel的单元格中去 private function dumpdata(byval ocells as excel.range) as string dim dr as gridviewrow ', ary() as object dim irow as integer, icol as integer '输出列标题 ocells(1, 1) = "济北 " + ddpzyq.selecteditem.text.trim + "作业区油井综合日报 " ocells(3, 1) = format(cdate(txtdate.text.trim), "yyyy-mm-dd ") for icol = 0 to gview.columns.count - 1 ocells(4, icol + 1) = gview.columns(icol).tostring next '将数据导出到相应的单元格 for irow = 0 to gview.rows.count - 1 dr = gview.rows.item(irow) 'ary = dr.cells.count for icol = 0 to dr.cells.count - 1 'ubound(ary) ocells(irow + 5, icol + 1) = dr.cells.item(icol).text.tostring.trim 'response.write(dr.cells.item(icol).text.tostring.trim & vbtab) next next end function | | |
|