zoukankan      html  css  js  c++  java
  • DataTable轉EXCEL 3/21

    時常會遇到ASP.NET轉EXCEL的需求,這有多種寫法,比如通過CSV,datagrid,gridview轉EXCEL,也可以直接調用EXCELL.DLL通過代碼實現

    由於有些銀行帳號、身份證號等在某些情況下用EXCEL打開時會用科學記數法顯示且超過15位的長度都默認為0,只能用些方法作些處理

    今日在通過用datagrid轉excel得到了一個新的啟示:

    將datatable先將銀行帳號等處理後再將全部資料列都用table元素來表示,用EXCEL打開時一樣正常

    其相關範例如下:

    ....... 

    Dim inta As Integer
     For inta = 0 To dt.Rows.Count - 1
           dt.Rows(inta).Item(2) = " " & dt.Rows(inta).Item(2).ToString
     Next

    Response.ContentType = "application/ms-Excel"
    Response.AddHeader("Content-Disposition", "inline;filename=test.xls")
    Response.Write(ConvertDtToTDF(dt))
    Response.End()

    dt.Dispose()
    dt = Nothing

    Private Function ConvertDtToTDF(ByVal dt As DataTable) As String
            Dim dr As DataRow, ary() As System.Object, i As Integer
            Dim iCol As Integer
            Dim swtr As String
            swtr = "<table border=1 style='font-size:9pt;font-family:新細明體;'>"
            ' 输出列标题
            swtr += "<tr>"
            For iCol = 0 To dt.Columns.Count - 1
                swtr += "<td>" & dt.Columns(iCol).ToString & "</td>"
             Next
            swtr += "</tr>"
            '输出数据
            For Each dr In dt.Rows
                ary = dr.ItemArray
                swtr += "<tr>"
                For i = 0 To UBound(ary)
                    swtr += "<td>" & ary(i).ToString & "</td>"
                 Next
                swtr += "</tr>"
                        Next
            swtr += "</table>"
            Response.Write(swtr)
    End Function


     

  • 相关阅读:
    LeetCode 234. 回文链表
    LeetCode 237. 删除链表中的节点
    LeetCode 20. 有效的括号( 括号配对 )
    堆栈操作合法性
    堆排序
    最大堆
    快速排序
    Bzoj1497 [NOI2006]最大获利
    Bzoj1001 [BeiJing2006]狼抓兔子
    Bzoj2716 [Violet 3]天使玩偶
  • 原文地址:https://www.cnblogs.com/daisylh/p/1418420.html
Copyright © 2011-2022 走看看