在.NET环境下将报表导出EXCEL和WORD lihonggen0(原作)

excel|word|导出excel

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

具体操作如下:(注:首先需添加引用,选择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 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

总结:

E_mail:lihonggen0@163.com

时间: 2024-09-17 04:19:45

在.NET环境下将报表导出EXCEL和WORD lihonggen0(原作)的相关文章

在.NET环境下将报表导出Excel和Word

excel|word|导出excel 在VB.NET同样可以将报表导出到Excel和Word进行输出,制作出专业水平的报表.具体操作如下:(注:首先需添加引用,选择COM-->选择Microsoft Word Object Library和Microsoft Excel Object Library组件) Private Function CreaTable() As DataTable Dim dt As New DataTable() dt.Columns.Add("列1",

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

excel|word|导出excel|数据 在VB6开发环境下,本人使用EXCEL作过报表,在.NET环境下开发,本人使用水晶报表.但VB.NET同样可以将报表导出到EXCEL和WORD进行输出,制作出专业水平的报表. 具体操作如下:(注:首先需添加引用,选择COM,选择Microsoft Word 10.0 Object Library和Microsoft Excel 10.0 Object Library组件) 1.先创建一个DataTable,作为数据来源,也可以另将其它的数据源. Pri

.NET Core 1.0版本下如何开发报表(导出Excel,PDF,Word)的功能

问题描述 因为现在最新版的.NETCore由于跨平台的原因,整个.NET的框架都重构了,之前的一些报表开源框架都不能用了,如:NPOI,OpenXML.等这些都用不了.那么最新的.NETCore应该如何开发报表(导出Excel,PDF,Word)的功能.有人做过这方面的研究吗?希望有人能给我一些关于这方面的资料,谢谢.

.NET环境下水晶报表使用总结 lihonggen0(原作)

水晶报表  .NET环境下水晶报表使用总结    lihonggen0(原作)    水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单.易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家. 一.在使用自带的水晶报表时,请注册,否则只能使用30次 水晶报表注册码注册号:6707437608密码:AAP5GKS0000GDE100DS 二.使用CrystalReportViewer进行预览 CrystalReportViewer控件允许在应用

.NET环境下水晶报表使用总结 lihonggen0(原作)-报表/图形/Office-.NE

 .NET环境下水晶报表使用总结    lihonggen0(原作)        水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单.易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家.一.在使用自带的水晶报表时,请注册,否则只能使用30次水晶报表注册码注册号:6707437608密码:AAP5GKS0000GDE100DS 二.使用CrystalReportViewer进行预览CrystalReportViewer控件允许在应用程序中查

asp.net+Ligerui实现grid导出Excel和Word的方法_实用技巧

本文实例讲述了asp.net+Ligerui实现grid导出Excel和Word的方法.分享给大家供大家参考,具体如下: 下面采用的导EXCEL方法,适合不翻页的grid,而且无需再读一次数据库,对于翻页的grid来说,要导全部,当然后台要再读一次数据库,这种导EXCEL方法baidu一大堆,这里不重复 代码部分: grid.htm: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http

水晶报表导出EXCEL时提示&amp;amp;quot;内存不足以完成操作&amp;amp;quot;

问题描述 我的软件是VS2005+SQL2000做的!在正版的XPhome里导出EXCEL水晶报表就会提示"内存不足以完成操作"在翻版的XP里是正常!有没有办法在不换系统情况下解决? 解决方案 解决方案二:尽于找到解决办法了!!在我的电脑里的高级选项里的环境变量更改.修改temp到C盘根目录下就行了!!解决方案三:ding!!!!!!!!!!!!!解决方案四:你的意思是说我要是给客户他也要将TEMP设置到C根目录下???解决方案五:这样要求每个人都这么设置不大现实.解决方案六:说的是服

求水晶报表导出excel的代码~~~~~~~~~~

问题描述 用vs2010安装了水晶报表,在页面上拖了个按钮,怎么实现点击按钮导出水晶报表数据成excel呢? 解决方案 解决方案二:跑哪去了解决方案三:水晶报表自带导出Excel了吧!

rdlc报表导出Excel问题

问题描述 rdlc报表导出的excel后,程序已对sheet1命名.如何自定义对sheet1命名呢 解决方案 解决方案二:重命名Excel表名Microsoft.Office.Interop.Excel.Applicationexcel1=newMicrosoft.Office.Interop.Excel.Application();Workbookworkbook1=excel1.Workbooks.Add(true);Worksheetworksheet1=(Worksheet)workbo