DataTable导为Excel

     ' 过程名称:ExportToExcel
     ' 功能描述:将传入的表格导出为Excel表
     ' 接收参数:p_InfoTable 要导出的表格
     ' 返回参数:
     ' 创建人员及日期:zzz@2006-11-02
     ' 注意事项:使用此函数需要引用Microsoft Excel 11.0 Object Library
     '          并且附加上frmWaiting窗体
     Public   Sub ExportToExcel(ByVal p_InfoTable As Data.DataTable)
        
If p_InfoTable.Rows.Count > 0 Then
            
Dim NewfrmWaiting As New frmWaiting
            NewfrmWaiting.Show()
            System.Windows.Forms.Application.DoEvents()
            
Dim myExcel As Microsoft.Office.Interop.Excel.Application
            
Try
                
Dim datav As New DataView
                datav 
= p_InfoTable.DefaultView
                
Dim i, j As Integer
                
Dim rows As Integer = datav.Table.Rows.Count
                
Dim cols As Integer = datav.Table.Columns.Count
                
Dim DataArray(rows - 1, cols - 1As String
                myExcel 
= New Microsoft.Office.Interop.Excel.Application

                
For i = 0 To rows - 1
                    
For j = 0 To cols - 1
                        
If datav.Table.Rows(i).Item(j) Is System.DBNull.Value Then
                        
Else
                            
'如果是数字类型的就保留两位小数点
                            If datav.Table.Rows(i).Item(j).GetType.ToString.ToLower = "system.int16" Or _
                                datav.Table.Rows(i).Item(j).GetType.ToString.ToLower 
= "system.int32" Or _
                                datav.Table.Rows(i).Item(j).GetType.ToString.ToLower 
= "system.single" Or _
                                datav.Table.Rows(i).Item(j).GetType.ToString.ToLower 
= "system.double" Then
                                DataArray(i, j) 
= Format(datav.Table.Rows(i).Item(j), "#########.00").Trim
                            
Else
                                DataArray(i, j) 
= Convert.ToString(datav.Table.Rows(i).Item(j)).Trim
                            
End If

                            
'DataArray(i, j) = datav.Table.Rows(i).Item(j)
                        End If
                    
Next
                
Next
                myExcel.Application.Workbooks.Add(
True)
                myExcel.Visible 
= True
                
For j = 0 To cols - 1
                    myExcel.Cells(
1, j + 1= datav.Table.Columns(j).ColumnName
                
Next
                myExcel.Range(
"A2").Resize(rows, cols).Value = DataArray
            
Catch exp As Exception
                
MsgBox("数据导出失败!请查看是否已经安装了Excel", MsgBoxStyle.Critical, "数据异常")
            
Finally
                NewfrmWaiting.Close()
            
End Try
        
Else
            
MsgBox("未发现当月数据!", MsgBoxStyle.Exclamation, "数据异常")
        
End If
    
End Sub
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值