在.NET环境下将报表导出EXCEL和WORD

原创 2004年08月17日 14:31:00

.NET环境下将报表导出EXCELWORD

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

VB6开发环境下,本人使用EXCEL作过报表,在.NET环境下开发,本人使用水晶报表。但VB.NET同样可以将报表导出到EXCELWORD进行输出,制作出专业水平的报表。

 

具体操作如下:(注:首先需添加引用,选择COM-->选择Microsoft Word 10.0 Object Library和Microsoft Excel 10.0 Object Library组件)

 

1.先创建一个DataTable,作为数据来源,也可以另将其它的数据源。

    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, colIndex As Integer

                rowIndex = 1

                colIndex = 0

 

                xlBook = xlApp.Workbooks().Add

                xlSheet = xlBook.Worksheets("sheet1")

 

                Dim Table As New DataTable()

                Table = CreaTable()

 

                '将所得到的表的列名,赋值给单元格

                Dim <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />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

Excel vba从excel中导出表格数据和图表到新word文档

office应用程序是可以相互访问的,比如可以把excel的数据导出到word中 step1: 首先要引用word工程对象,在excelvba中依次点击 工具——》引用——》microso...
  • foreverfall
  • foreverfall
  • 2015年06月12日 11:41
  • 1291

数据导出到Excel(或Word)源代码大全

数据导出到Excel(或Word)源代码大全 标签: exceldatasetnulloffice数据库generation 2008-11-16 15:24 13988人阅读 评论(15) ...
  • kasama1953
  • kasama1953
  • 2016年06月16日 23:23
  • 3515

关于C#,ASP.NET 生成Excel表格的两种方式(Datatable转Excel)

列举一些编程过程中常用代码,如Datatable转换为Excel表格给用户下载,包含了生成Excel的方法,绝对路径转换相对路径的方法,替换Html标签的方法,Json数据转换为Datatable的方...
  • u013542549
  • u013542549
  • 2017年05月04日 18:12
  • 17275

VB.net 将水晶报表导出成pdf,word,excel等制定文件

  • 2009年03月13日 11:23
  • 68KB
  • 下载

Atitit.导出excel报表的设计与实现java .net php 总结

Atitit.导出excel报表的设计与实现java .net php 总结     1. 导出报表 表格的设计要素1 1.1. 支持通用list转换1 1.2. 对于空列是否输出1 1....
  • attilax
  • attilax
  • 2016年01月12日 00:10
  • 354

ASP.NET导出Excel或Word文件格式

//说明下 EnableEventValidation="false"的使用;     //在页面上添加了输入型服务器控件时(如 TextBox),就需要设置为false了,否则会报错;也就是关闭页...
  • qiushuiyiren2011
  • qiushuiyiren2011
  • 2012年11月07日 16:16
  • 260

asp.net从数据库导出数据到word、excel、txt文本文件

using System; using System.Data; using System.Drawing; using System.Data.SqlClient; using Ex...
  • cunzhang145
  • cunzhang145
  • 2013年08月22日 08:37
  • 456

asp.net <table></table>数据导出为word/excel/ppt

前台代码:要导出的是id="dbt"表,因为要表里要执行 所以不能在表中加 runat="server",要不就报错,只能再加个表id="dbt"。 HTML code @ P...
  • caoshuang520
  • caoshuang520
  • 2012年07月21日 03:21
  • 982

asp.net中将DataGrid数据导出到excel或word文件中

private void Page_Load(object sender, System.EventArgs e) { SqlConnection con=...
  • fjnu2008
  • fjnu2008
  • 2012年08月07日 09:09
  • 348

.net实现导出Word、Excel格式文件

来自于:http://csharp.banzhu.net/article/csharp-2-74809.html在做.NET项目时,会经常遇到要导出文件的问题,如将DataGrid中的数据导出到exc...
  • lmydream0417
  • lmydream0417
  • 2011年01月29日 00:41
  • 459
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在.NET环境下将报表导出EXCEL和WORD
举报原因:
原因补充:

(最多只允许输入30个字)