[VB.NET]急.....使用OWC11导出Excel,怎么生成多个工作薄..

前端之家收集整理的这篇文章主要介绍了[VB.NET]急.....使用OWC11导出Excel,怎么生成多个工作薄..前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
急.....使用OWC11导出Excel,怎么生成多个工作薄.. 测试例子.... Imports Microsoft.Office.Interop Module Module1 Sub Main() Dim xlsheet As New Owc11.SpreadsheetClass() xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,14)).MergeCells = True xlsheet.ActiveSheet.Cells(1,1) = 一级帐表 xlsheet.Range(xlsheet.Cells(1,14)).Font.Bold = True 单元格文本水平居中对齐 xlsheet.Range(xlsheet.Cells(1,14)).HorizontalAlignment = Owc11.XlHAlign.xlHAlignCenter 设置字体大小 xlsheet.Range(xlsheet.Cells(1,14)).Font.Size = 14 设置列宽 xlsheet.Range(xlsheet.Cells(1,3),3)).ColumnWidth = 50 画边框线 xlsheet.Range(xlsheet.Cells(1,xlsheet.Cells(10,15)).Borders.LineStyle = Owc11.XlLineStyle.xlContinuous 写入数据 (这里可根据需要由DS生成) Dim row,i As Integer For row = 2 To 10 For i = 0 To 10 xlsheet.ActiveSheet.Cells(row,i + 1) = 123.456 Next Next Try 将数字格式化为金额(要格式化的单元格内的值必须为数值型) xlsheet.Range(xlsheet.Cells(2,15)).NumberFormat = ¥#,##0.00 xlsheet.Export( D://TestOWC.xls,Owc11.SheetExportActionEnum.ssExportActionNone,Owc11.SheetExportFormat.ssExportXMLSpreadsheet) Catch Exit Sub End Try Exit Sub End Sub End Module 如果我想生成多个不同的工作薄,名称为 Name1 ....就是可以自己命名. 把它们全部存在一个excel文件中.怎么处理. __________________________________________________________________________ http://www.wave12.com/web/home.asp __________________________________________________________________________ 没人知道吗?? __________________________________________________________________________ 如果用Excel.Application来做的话会很方便…… __________________________________________________________________________ to smile9961(good life) 能不能给个例子参考一下. 现在目的只是为了把查找出来的多个表,放到不同的工作薄中. __________________________________________________________________________ 哦,那你還是用這個存儲過程導吧 if exists (select * from dbo.sysobjects where id = object_id(N [dbo].[p_exporttb] ) and OBJECTPROPERTY(id,N IsProcedure ) = 1) drop procedure [dbo].[p_exporttb] GO /*--数据导出EXCEL 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件 如果文件不存在,将自动创建文件 如果表不存在,将自动创建表 基于通用性考虑,仅支持导出标准数据类型 --邹建 2003.10(引用请保留此信息)--*/ /*--调用示例 p_exporttb @sqlstr= select * from 地区资料,@path= c:/,@fname= aa.xls,@sheetname= 地区资料 --*/ create proc p_exporttb @sqlstr varchar(8000),--查询语句,如果查询语句中使用了order by,请加上top 100 percent @path nvarchar(1000),--文件存放目录 @fname nvarchar(250),--文件名 @sheetname varchar(250)= --要创建的工作表名,默认为文件名 as declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000) --参数检测 if isnull(@fname,)= set @fname= temp.xls if isnull(@sheetname,)= set @sheetname=replace(@fname,.,# ) --检查文件是否已经存在 if right(@path,1) <> / set @path=@path+ / create table #tb(a bit,b bit,c bit) set @sql=@path+@fname insert into #tb exec master..xp_fileexist @sql --数据库创建语句 set @sql=@path+@fname if exists(select 1 from #tb where a=1) set @constr= DRIVER={Microsoft Excel Driver (*.xls)};DSN= ;READONLY=FALSE + ;CREATE_DB= +@sql+ ;DBQ= +@sql else set @constr= Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties= Excel 8.0;HDR=YES + ;DATABASE= +@sql+ --连接数据库 exec @err=sp_oacreate adodb.connection,@obj out if @err <> 0 goto lberr exec @err=sp_oamethod @obj,open,null,@constr if @err <> 0 goto lberr --创建表的sql declare @tbname sysname set @tbname= ##tmp_ +convert(varchar(38),newid()) set @sql= select * into [ +@tbname+ ] from( +@sqlstr+ ) a exec(@sql) select @sql=,@fdlist= select @fdlist=@fdlist+,[ +a.name+ ],@sql=@sql+,[ +a.name+ ] +case when b.name like %char then case when a.length> 255 then memo else text( +cast(a.length as varchar)+ ) end when b.name like %int or b.name= bit then int when b.name like �tetime then datetime when b.name like %money then money when b.name like %text then memo else b.name end FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype where b.name not in( image,uniqueidentifier,sql_variant,varbinary,binary,timestamp ) and a.id=(select id from tempdb..sysobjects where name=@tbname) if @@rowcount=0 return select @sql= create table [ +@sheetname + ]( +substring(@sql,2,8000)+ ),@fdlist=substring(@fdlist,8000) exec @err=sp_oamethod @obj,execute,@out out,@sql if @err <> 0 goto lberr exec @err=sp_oadestroy @obj --导入数据 set @sql= openrowset( MICROSOFT.JET.OLEDB.4.0,Excel 8.0;HDR=YES ;DATABASE= +@path+@fname+,[ +@sheetname+ $]) exec( insert into +@sql+ ( +@fdlist+ ) select +@fdlist+ from [ +@tbname+ ] ) set @sql= drop table [ +@tbname+ ] exec(@sql) return lberr: exec sp_oageterrorinfo 0,@src out,@desc out lbexit: select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述 select @sql,@constr,@fdlist go __________________________________________________________________________

猜你在找的VB相关文章