1/1页1 跳转到查看:1346
发新话题 回复该主题

用VB.Net导出数据到数据透视表

用VB.Net导出数据到数据透视表

很多时候可以利用Excel的数据透视表导出你想要的报表格式。那么在.Net下如何做呢?下面的代码可以从数据库中取出数据然后导入Excel。        Dim excel As Excel.ApplicationÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim xBk As Excel._WorkbookÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim xSt As Excel._WorksheetÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim xRange As Excel.RangeÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim xPivotCache As Excel.PivotCacheÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim xPivotTable As Excel.PivotTableÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim xPivotField As Excel.PivotFieldÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim cnnsr As String, sql As StringÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim RowFields() As String = {"", "", ""}ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Dim PageFields() As String = {"", "", "", "", "", ""}ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        'SERVER    是服务器名或服务器的IP地址ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        'DATABASE 是数据库名ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        'Table          是表名ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        TryÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            ' 开始导出ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            cnnsr = "ODBC;DRIVER=SQL Server;SERVER=" + SERVER ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            cnnsr = cnnsr + ";UID=;APP=Report Tools;WSID=ReportClient;DATABASE=" + DATABASEÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            cnnsr = cnnsr + ";Trusted_Connection=Yes"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            excel = New Excel.ApplicationClassÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xBk = excel.Workbooks.Add(True)ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xSt = xBk.ActiveSheetÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xRange = xSt.Range("A4")ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xRange.Select()ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            ' 开始ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotCache = xBk.PivotCaches.Add(SourceType:=2)ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotCache.Connection = cnnsrÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotCache.CommandType = 2ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            sql = "select * from " + TableÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotCache.CommandText = sqlÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotTable = xPivotCache.CreatePivotTable(TableDestination:="Sheet1!R3C1", TableName:="数据透视表1", DefaultVersion:=1)ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            '准备行字段ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            RowFields(0) = "字段1"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            RowFields(1) = "字段2"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            RowFields(2) = "字段3"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            '准备页面字段ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            PageFields(0) = "字段4"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            PageFields(1) = "字段5"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            PageFields(2) = "字段6"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            PageFields(3) = "字段7"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            PageFields(4) = "字段8"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            PageFields(5) = "字段9"ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotTable.AddFields(RowFields:=RowFields, PageFields:=PageFields)ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotField = xPivotTable.PivotFields("数量")ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xPivotField.Orientation = 4ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            ' 关闭工具条ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            'xBk.ShowPivotTableFieldList = FalseÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            'excel.CommandBars("PivotTable").visible = FalseÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            excel.Visible = TrueÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        Catch ex As ExceptionÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            If cnn.State = ConnectionState.Open ThenÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
                cnn.Close()ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            End IfÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            xBk.Close(0)ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            excel.Quit()ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
            MessageBox.Show(ex.Message, "报表工具", MessageBoxButtons.OK, MessageBoxIcon.Warning)ÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"
        End TryÐçUü–l;޼¶bbs.szblogs.com!j<; ßq(o"

TOP

 
1/1页1 跳转到
发表新主题 回复该主题