请教各位:
   我想用c#,通过闹钟实现定时把sqlserver的数据导入到一个excel文件,同时生成一个EXCEL文件,
不是手动保存,那位大侠知道的指导下,谢谢。要是有什么原代码就太感谢了。

解决方案 »

  1.   

    sqlserver数据库就有这功能呀,你不用通过程序来做吧
    直接用数据库定时导出就好了.
    你要实在想用程序来做,说说你做的是winform还是webform
      

  2.   

    我做的是一个b/s的,不管它是什么,winform或者webform,只要实现了功能就可以了,
      

  3.   


      1.采用数据库的方式,定时调度.  2.B/S建议用Window Service.  3.C/S 定时器即可~ 
      至于读取、生成、保存Excel,网上例子就很多了。
      

  4.   

    指导下了,我没有找到直接导入excel,生成文件的代码,找到的都是点击保存确认之后才生成excel文件。那位朋友有的话,发一份,给我看看,谢谢了
      

  5.   

    我想用c#,通过闹钟实现定时把sqlserver的数据导入到一个excel文件,同时生成一个EXCEL文件,
    不是手动保存,那位大侠知道的指导下,谢谢。要是有什么原代码就太感谢了。
      

  6.   

    呵呵.实例化一个Excel
    然后一个WorkBook
    然后添加一个sheet
    然后就是操作Rang() getRang SetText等等.以前做过.不复杂的
      

  7.   

    这是我写的一个方法,也找了不少资料,参数是,dataset,要生成的excel的路径,根据strColumnName 这一列的值生成不同的excel文件名称为1.xls,2.xsl.......
    希望对你有帮助.要先添加对excel的引用,在引用中的com中选
    Public Sub CreateExcel(ByVal _strExcelPath As String, ByVal _ExcelDataSet As DataSet, ByVal _strColumnName As String)
            Dim xlSheet As Excel.Worksheet
            Dim xlBook As Excel.Workbook
            Dim xlDBTable As Excel.DataTable
            Dim strPath As String        Try            'define an arry list 
                Dim arry As ArrayList
                arry = New ArrayList
                Dim dr As DataRow
                Dim i As Integer = 0
                Dim strAll As String
                'first,get the deffent column's value
                'then send the values into a arrylist
                'define a dataview in order to sort
                Dim dv As DataView
                dv = New DataView(_ExcelDataSet.Tables(0))
                'sort by the column
                dv.Sort = _strColumnName
                Dim tmp As String
                Dim drv As DataRowView
                For Each drv In dv
                    If tmp <> drv.Row(_strColumnName) Then
                        tmp = Convert.ToString(drv.Row(_strColumnName))
                        arry.Add(tmp)
                    End If
                Next            Dim k As Integer = 0
                For k = 0 To arry.Count - 1
                    Dim xlApp As New Excel.Application
                    xlBook = xlApp.Workbooks.Add
                    xlSheet = xlBook.Worksheets("sheet1")                'the file's full name
                    strPath = _strExcelPath & "\" & k + 1 & ".xls"
                    Dim col As DataColumn
                    Dim colIndex As Integer = 0
                    'For Each col In _ExcelDataSet.Tables(0).Columns
                    '    colIndex = colIndex + 1
                    '    'set the cell's column name
                    '    xlApp.Cells(1, colIndex) = col.ColumnName
                    'Next                Dim row As DataRow
                    Dim rowIndex As Integer = 0
                    'base on the arrylist's value,circle
                    For Each row In _ExcelDataSet.Tables(0).Select(_strColumnName & "='" & Convert.ToString(arry(k)) & "'")
                        'add the cell's value
                        rowIndex = rowIndex + 1
                        colIndex = 0
                        For Each col In _ExcelDataSet.Tables(0).Columns
                            colIndex = colIndex + 1
                            xlApp.Cells(rowIndex, colIndex) = row(col.ColumnName)                    Next                Next                xlBook.SaveAs(strPath, xlApp.ActiveWorkbook.FileFormat, "", "", xlApp.ActiveWorkbook.ReadOnlyRecommended, xlApp.ActiveWorkbook.CreateBackup, Excel.XlSaveAsAccessMode.xlShared.xlShared, xlApp.ActiveWorkbook.ConflictResolution, False, "", "")                'kill the process
                    xlBook.Close()
                    xlApp.Quit()
                    xlApp = Nothing            Next
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub
      

  8.   

    思路是先将要取值的这一列排序,将不同的值导入一个数组(这个根据业务需要),然后在数组中循环,在datatable中循环增加,最后统一保存.网上的例子很多,你也可以找找,翻成c#的就可以了,不难.