将sqlreader中的数据倒入excel中

原创 2004年07月30日 18:27:00

        在给单位写一个基于web的报表程序时,在对报表打印这一块,本来想用“水晶报表”来做的,但不幸的是,本人对水晶报表软件了解是一知半解,只能看不能打印,故而放弃了。转用excel来做报表。

下面是例子的源代码:

‘首先在工程项目中引用 excel  10.0 对象库

Imports Excel
Imports System.Data
Imports System.Data.SqlClient
Public Class cyjcbbcx

......

‘ 定义一个sqldatareader
       Dim dtcyjjc2 As SqlClient.SqlDataReader

......
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.cmdsql2 = New SqlClient.SqlCommand()
        Me.cmdsql2.Connection = Me.con

        Me.cmdsql2.CommandText = "  SELECT cyjmc,zsj1.zsjmc as zsjmc1,zsj2.zsjmc as zsjmc2,zsj3.zsjmc as zsjmc3,zsj4.zsjmc as zsjmc4 ,tcrq, ycyl,kfcw FROM cyjmcs,zsj1,zsj2,zsj3,zsj4  where (cyjmcs.zsjid1=zsj1.zsjid) and (cyjmcs.zsjid2=zsj2.zsjid) and (cyjmcs.zsjid3=zsj3.zsjid) and (cyjmcs.zsjid4=zsj4.zsjid) "
        Me.con.Open()
        dtcyjjc2 = Me.cmdsql2.ExecuteReader
        Dim strSource As String
        Dim strDst As String
        ' dim
        On Error Resume Next
        strSource = Server.MapPath(".//templet/cyjjc.xls")            'xyzrb.xls是模版文件
        strDst = Server.MapPath(".//temp/Temp.xls")                  'temp.xls是要打开的目标文件
        FileCopy(strSource, strDst)
        ' 建立Excel对象

        ' xlApp = New Excel.Application()
        xlApp.DisplayAlerts = False  '不显示警告
        xlApp.Application.Visible = False '不显示界面
        xlApp.Workbooks.Open(strDst)
        Dim xlAppBook = xlApp.ActiveWorkbook
        Dim xlAppSheets = xlApp.Worksheets
        Dim xlAppSheet = xlApp.Sheets(1)
        '    Dim xlAppSheet1 = xlApp.ActiveCell.Cells.Range
        Dim dtreader As SqlDataReader
       
        Dim i, j As Integer
        i = 3

        Dim biaoti As String = "油矿"   ‘产生标题
        With xlAppSheet

            .Cells(1, 1) = (biaoti)

        End With
        While dtcyjjc2.Read()

            With xlAppSheet
                ' For i = 8 To 17
                ' For j = 1 To 2
                '  .Cells(i, j).Font = CSng(dtreader.Item(j - 1))
                .Cells(i, 1) = (dtcyjjc2("cyjmc"))
                .Cells(i, 2) = (dtcyjjc2("zsjmc1"))
                .Cells(i, 3) = (dtcyjjc2("zsjmc2"))
                .Cells(i, 4) = (dtcyjjc2("zsjmc3"))
                .Cells(i, 5) = (dtcyjjc2("zsjmc4"))
                .Cells(i, 6) = (dtcyjjc2("ycyl"))
                .Cells(i, 7) = (dtcyjjc2("kfcw"))
                .Cells(i, 8) = (dtcyjjc2("tcrq"))
                i = i + 1

            End With
        End While
        xlApp.ActiveWorkbook.Save()
        'xlApp.ActiveWorkbook.WebPagePreview()
        xlApp.Workbooks.Close()
        ' Open(strDst)
        xlApp.Quit()
        xlAppBook = Nothing
        xlAppSheets = Nothing
        xlAppSheet = Nothing


        xlApp = Nothing
        dtcyjjc2.Close()

        Me.con.Close()

'下面的代码用于打开一个新的窗口,在新窗口中显示生成excel 文件

        Dim scriptString As String = "<script language=JavaScript>  {"
        scriptString += " window.open ('../bbcxdy/temp/temp.xls', 'newwindow', 'fullscreen=no,toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=yes');"
        scriptString += "}"
        scriptString += "</script>"
        If (Not Me.IsStartupScriptRegistered("Startup")) Then
            Me.RegisterStartupScript("Startup", scriptString)
        End If

    End Sub

End Class

这样,就能在客户端从服务器上下载该excel 文件,打印变得简单的多了

由于,这是本人初次接触excel 编程,有很多还没有解决的问题,如在服务器端生成的没有结束进程。

 

将sql server中的数据倒入Excel(c#)

  • 2007年09月06日 09:57
  • 26KB
  • 下载

用C#快速往Excel写数据

  • 2011年09月19日 18:58
  • 13KB
  • 下载

excel文件到导入到数据库,date类型的处理

将excel文件中的数据导入到数据库,date类型的参数转换时出显得问题,在excel中显示是日期格式,读取到java中是一串数字,可用这个方法解决,这是网上看到的,觉得很巧妙,记下来。 需要使...
  • qq_39647475
  • qq_39647475
  • 2017-12-20 11:52:55
  • 22

20150831将Excel数据倒入PB数据窗口中的DW

  • 2015年08月31日 22:06
  • 204KB
  • 下载

Excel倒入PB

  • 2013年01月24日 08:09
  • 209KB
  • 下载

将Oracle的数据倒入EXCEL中的方法

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE ...
  • sql_xep
  • sql_xep
  • 2009-01-20 09:57:00
  • 363

将sql server中的数据倒入Excel

author:ouyang76cn()虽然,sql server中的DTS也能将数据倒入Excel,但不如使用程序灵活,本程序主要代码在按钮函数内。可适应于报表开发的读取数据部分:)我删除了原程序的很...
  • emailqjc
  • emailqjc
  • 2007-07-12 22:00:00
  • 401

将sql server中的数据倒入Excel

author:ouyang76cn()虽然,sql server中的DTS也能将数据倒入Excel,但不如使用程序灵活,本程序主要代码在按钮函数内。可适应于报表开发的读取数据部分:)我删除了原程序的很...
  • paoluo
  • paoluo
  • 2006-04-07 21:53:00
  • 685

将Oracle的数据倒入EXCEL中的方法

在当今信息化高速发展的时代,日常的工作中,用户经常遇到要将EXCEL文件中的数据和ORACLE数据库中的数据互倒的问题,实现对实时数据的操作,而可查阅到这方面的资料并不多。若需将ORACLE信息系统中...
  • lukejohn7913
  • lukejohn7913
  • 2014-05-23 15:48:18
  • 210

将ORACLE数据库的数据倒入到EXCEL中的方法

  在当今信息化高速发展的时代,日常的工作中,用户经常遇到要将EXCEL文件中的数据和ORACLE数据库中的数据互倒的问题,实现对实时数据的操作,而可查阅到这方面的资料并不多。若需将ORACLE信息系...
  • eigo
  • eigo
  • 2006-05-11 16:34:00
  • 943
收藏助手
不良信息举报
您举报文章:将sqlreader中的数据倒入excel中
举报原因:
原因补充:

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