在.NET环境下将报表导出Excel和Word |
|
<!---【孟宪会之精彩世界】--->
在VB.NET同样可以将报表导出到Excel和Word进行输出,制作出专业水平的报表。具体操作如下:(注:首先需添加引用,选择COM-->选择Microsoft Word Object Library和Microsoft Excel Object Library组件)
<xmp>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.将表中的内容导出到Excel
Dim xlApp As New Excel.Application()
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim rowIndex As Integer = 1
Dim colIndex As Integer = 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 = "黑体"
'设标题为黑体字
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Bold = True
'标题字体加粗
.Range(.Cells(1, 1), .Cells(rowIndex, colIndex)).Borders.LineStyle = 1
'设表格边框样式
End With
With xlSheet.PageSetup
.LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:" ' & Gsmc
.CenterHeader = "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规""" & Chr(10) &_
"&""楷体_GB2312,常规""&10日 期:"
.RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
.LeftFooter = "&""楷体_GB2312,常规""&10制表人:"
.CenterFooter = "&""楷体_GB2312,常规""&10制表日期:"
.RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"
End With
xlApp.Visible = True
'3.将表中的内容导出到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
</xmp> |
参看本的帖子
http://community.csdn.net/Expert/topic/3417/3417163.xml?temp=.9710504
发布一个操作Excel类库 功能 excel文件创建修改 单元格数据格式编辑 图片 图表 插入控制 外部数据的添加 插入等
下载地址:http://www.journeychina.com/OfficeEditor/
ExcelEditor提供以下方法:
'创建一个Excel对象
Public Sub Creat()
'打开一个Excel对象
Public Sub Open(ByVal FileName As String)
参数描述:FileName :excel文件路径
'获取一个工作表
Public Function GetSheet(ByVal SheetName As String) As Excel.Worksheet
参数描述:SheetName :工作表名称
'添加一个工作表
Public Function AddSheet(ByVal SheetName As String) As Excel.Worksheet
'删除一个工作表
Public Function DelSheet(ByVal SheetName As String)
'重命名一个工作表
Public Function ReNameSheet(ByVal OldSheetName As String, ByVal NewSheetName As String) As
Excel.Worksheet
Public Function ReNameSheet(ByVal Sheet As Excel.Worksheet, ByVal NewSheetName As String) As
Excel.Worksheet
'设置一个单元格的值
Public Sub SetCellValue(ByVal ws As Excel.Worksheet, ByVal x As Integer, ByVal y As Integer, ByVal
value As Object)
参数说明 ws:要设值的工作表 X行Y列 value 值
Public Sub SetCellValue(ByVal ws As String, ByVal x As Integer, ByVal y As Integer, ByVal value As
Object)
' 设置一个单元格的属性 字体, 大小,颜色 ,对齐方式
Public Sub SetCellProperty(ByVal ws As Excel.Worksheet, ByVal Startx As Integer, ByVal Starty As
Integer, ByVal Endx As Integer, ByVal Endy As Integer, ByVal size As Integer, Optional ByVal name As
String = "宋体", Optional ByVal color As Excel.Constants = Excel.Constants.xlAutomatic, Optional ByVal
HorizontalAlignment As Excel.Constants = Excel.Constants.xlLeft)
参数说明 :ws:要设值的工作表 Startx 起始单元格的行 Starty 起始单元格的列 Endx 结束单元格的行 Endy 结束
单元格的列 size 字体大小 name 字体 color 颜色 HorizontalAlignment 对齐方式
Public Sub SetCellProperty(ByVal wsn As String, ByVal Startx As Integer, ByVal Starty As Integer,
ByVal Endx As Integer, ByVal Endy As Integer, Optional ByVal size As Integer = 12, Optional ByVal name
As String = "宋体", Optional ByVal color As Excel.Constants = Excel.Constants.xlAutomatic, Optional
ByVal HorizontalAlignment As Excel.Constants = Excel.Constants.xlAutomatic.xlRight)
'合并单元格
Public Sub UniteCells(ByVal ws As Excel.Worksheet, ByVal Startx As Integer, ByVal Starty As Integer,
ByVal Endx As Integer, ByVal Endy As Integer)
参数说明 :ws:要设值的工作表 Startx 起始单元格的行 Starty 起始单元格的列 Endx 结束单元格的行 Endy 结束
单元格的列
'将内存中数据表格插入到Excel指定工作表的指定位置 为在使用摩板时控制格式时使用
Public Sub InsertTable(ByVal dt As Data.DataTable, ByVal ws As String, ByVal startX As Integer,
ByVal startY As Integer)
Public Sub InsertTable(ByVal dt As Data.DataTable, ByVal ws As Excel.Worksheet, ByVal startX As
Integer, ByVal startY As Integer)
'将内存中数据表格添加到Excel指定工作表的指定位置
Public Sub AddTable(ByVal dt As Data.DataTable, ByVal ws As String, ByVal startX As Integer, ByVal
startY As Integer)
Public Sub AddTable(ByVal dt As Data.DataTable, ByVal ws As Excel.Worksheet, ByVal startX As Integer,
ByVal startY As Integer)
'插入图片操作"
Sub InsertPictures(ByVal Filename As String, ByVal ws As String)
Sub InsertPictures(ByVal Filename As String, ByVal ws As String, ByVal Height As Integer, ByVal Width
As Integer)
Sub InsertPictures(ByVal Filename As String, ByVal ws As String, ByVal left As Integer, ByVal top As
Integer, ByVal Height As Integer, ByVal Width As Integer)
插入图表操作"
Public Sub InsertActiveChart(ByVal ChartType As Excel.XlChartType, ByVal ws As String, ByVal
DataSourcesX1 As Integer, ByVal DataSourcesY1 As Integer, ByVal DataSourcesX2 As Integer, ByVal
DataSourcesY2 As Integer, Optional ByVal ChartDataType As Excel.XlRowCol = Excel.XlRowCol.xlColumns)
参数说明 :ChartType 为图表类型 ws:要设值的工作表名 DataSourcesX1 图表数据源起始单元格的行
DataSourcesY1 图表数据源起始单元格的列 DataSourcesX2 图表数据源结束单元格的行 DataSourcesY2 图表数据源结
束单元格的列 ChartDataType 图表数据数据方式
' 保存文档
Public Function Save() As Boolean
' 文档另存为
Public Function SaveAs(ByVal FileName) As Boolean
' 关闭一个Excel对象,销毁对象
Public Sub Close()
这个一定要有!要不然 在系统进程中回有很EXCEL进程没有销毁!
使用方法:引用:VBExcelWordEditor.dll com引用: Microsoft Excel 10.0 Object Library
暂时只做了这些功能,慢慢扩展
分享到:
相关推荐
在.NET环境下将报表导出Excel和Word.rar
一个用VB.net写的 将水晶报表导出成pdf,word,excel等制定文件的简单实例程序,供参考。
运行依赖于fr-server-6.5.jar、fr-third-6.5.jar两个jar文件,以及datasource.xml数据库连接定义文件。
vb.net导出word或excel代码实例 初学者适用,可以参考噢
在系统里,直接引用该文件,可以进行word报表的制作,往里面添加 文字、统计图表等。这条、引用的COM组件版本 C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft....
简单的部分代码,将web中的数据导出为word或excel格式的文件,报表使用。
您可以导出一份报表,其导出格式超过了20种:PDF、XPS、Excel、Word、HTML、 RTF以及XML等格式。这一切能在基于Ajax的报表Web浏览器中完成,也能直接通过Web应用程序中的一段代码来完成。 Stimulsoft Reports.Web...
本DataGridView打印控件和.NET打印控件5.7版2014年11月2日修改完成,完全免费,在.NET2.0及以上环境下都可以使用(VB打印、C#打印都是可以的),有帮助文档与使用实例。 与上一版相比,控件5.7版的主要更改如下: 1...
Stimulsoft Reports.Net 试用版 试用版 开发语言: .NET 可用平台: Visual Studio 2005-...可导出多种数据格式,比如:PDF,XML,HTML,Word,Excel,RTF格式,文本文件,CSV,BMP和JPEG格式,GIF,PNG,TIFF格式等。
可以实现数据的导出Word、Excel、报表等、
8、数据导出功能,可以将DataGridView导出为Excel\PDF\RTF\HTML文件,5.7版控件使用开源的NPOI导出Excel,速度非常快,效果非常好。 9、强大的容器控件打印功能(DrawPanel函数)。借助该函数,您只需要在您的容器...
asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using ...
4.进一步完善导出Excel的算法,将多个页面格式迥异的报表导出在一个Sheet上时,改进了算法,使得在Excel中所需列的数量和宽度计算精确度更高,真正做到无失真导出,容错性更好,对于任何复杂的报表,都可以正确导出 ...
stimulsoft for web version 08 has been cracked 快速构建报表,支持定义报表模板; 效果跟ASPOSE 第三方构件一样方便 后端数据填充word模板,excel模板,支持pdf,图片导出
和应用程序完美结合,支持windows下所有的开发工具和程序语言(例如Delphi、C++、VB、PB、.NET、易语言),最终用户在设计器里可直接选择打印字段,生成表达式,报表设计器用户容易学习理解。 9. 支持脚本和窗体...
ASP导出Excel数据的四种方法.txt C#调用存储过程.txt CheckBox控件.txt datagrid排序_选择_分页.txt DataSet对象.txt DotNET WinForm FAQ 16个.txt excel打印.txt EXCEL导出.txt EXCEL中合并单元格.txt ...
6、文档方案(均为开源) 导出:Excel2007使用EPPlus、Excel2003使用NPOI、Word2003/2007使用DocX、Pdf使用Gios 压缩:Ionic.Zip、Ziplib 7、js库为jquery 8、UI选用jquery easyui 1.3.2 9、选knockoutjs为前端...
Stimulsoft Reports.Net是一个基于.NET框架的报表生成器,能够帮助你创建结构、功能丰富的...可导出多种数据格式,比如:PDF,XML,HTML,Word,Excel,RTF格式,文本文件,CSV,BMP和JPEG格式,GIF,PNG,TIFF格式等。
本DataGridView打印控件和.NET打印控件5.6版(含报表模板设计组件)2014年6月22日修改完成,完全免费,在.NET2.0及以上环境下都可以使用(VB打印、C#打印都是可以的),有帮助文档与使用实例。 与上一版本的5.5版...