生成/读取(反向更新数据库) Excel文件[1]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

(一).内容

   在操作Excel的过程中遇到了一些问题. 比如: 访问Com组件权限,无法读取Excel等
   文章描述了怎样双向操作(读取和生成)Excel文件,以及怎样解决遇到的问题!

(二).代码
   开始时用了下面两个方法进行生成和读取 Excel:
   1.生成Excel文件方法一:
      ' <summary>
    '  下载Excel方法1(用流实现)
    ' </summary>
    ' <param name="dt">要转换为Excel文件的表</param>
    ' <param name="page">页面Page对象,用法: 将me.Page传递过来即可</param>
    Public Sub DownLoadExcelToClient1(ByVal dt As DataTable, ByVal FileName As String)
        Dim resp As HttpResponse
        resp = Page.Response
        resp.ContentEncoding = System.Text.Encoding.Default

'System.Text.Encoding.GetEncoding("GB2312")
        resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName)
        Dim colHeaders As String = "", ls_item = ""
        Dim i As Int16 = 0

        '取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
        For i = 0 To dt.Columns.Count - 2
            colHeaders += dt.Columns(i).Caption.ToString() & Chr(9)
        Next
        colHeaders += dt.Columns(i).Caption.ToString() & Chr(13)
        '向HTTP输出流中写入取得的数据信息
        resp.Write(colHeaders)

        Dim row As DataRow
        '逐行处理数据  
        For Each row In dt.Rows
            '在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
            For i = 0 To dt.Columns.Count - 2
                ls_item &= row(i).ToString() & Chr(9)
            Next i
            ls_item &= row(i).ToString() & Chr(13)

            '当前行数据写入HTTP输出流,并且置空ls_item以便下行数据    
            resp.Write(ls_item)
            ls_item = ""
        Next
        '写缓冲区中的数据到HTTP头文件中
        resp.End()
    End Sub
   2.读取Excel文件
     ' <summary>
    '  读取Excel文件
    ' </summary>
    ' <param name="dt">要转换为Excel文件的表</param>
    ' <param name="page">页面Page对象,用法: 将me.Page传递过来即可</param>
    ' <return>数据集DataSet</return>
    Public Function ReadExcelFileToDataSet(ByVal strFileName As String) As DataSet
        Try

            '建立一个专门存放Excel文件的目录
            If Directory.Exists(Page.Server.MapPath("ExcelFolder")) = False Then
                Directory.CreateDirectory(Page.Server.MapPath("ExcelFolder"))
            End If

            Dim strConn As String
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &

Page.Server.MapPath(".") & "\ExcelFolder\" & strFileName & ";" & "Extended

本文关键:生成/读取(反向更新数据库) Excel文件
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top