Foxtable(狐表)用户栏目专家坐堂 → [求助]导出数据


  共有2081人关注过本帖树形打印复制链接

主题:[求助]导出数据

帅哥哟,离线,有人找我吗?
湛江智
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
[求助]导出数据  发帖心情 Post By:2018/8/24 17:39:00 [只看该作者]

 帮助文件————导出数据
下面代码,当日期列单元格为空时,导出的excle表的单元格 日期是1900-01-00,下面代码怎么修改呢?谢谢

Dim dt As Table = Tables("订单")
Dim
nms() As String = {"产品","客户","数量","单价","金额","日期"} '要导出的列名
Dim
caps() As String = {"产品名称","用户名称","数量","单价","金额","日期"} '对应的列标题
Dim
szs() As Integer = {100,100,80,80,80,120} '对应的列宽
Dim
Book As New XLS.Book '定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim
st As XLS.Style = Book.NewStyle '日期列的显示格式
st
.Format = "yyyy-MM-dd"
For
c As Integer = 0 To nms.length -1
    Sheet(0, c).Value = caps(c)
'指定列标题
    Sheet.Cols(c).Width = szs(c)
'指定列宽
    If dt.Cols(nms(c)).IsDate Then '
如果是日期列
        Sheet.Cols(c).Style = st '
设置显示格式
    End If

Next
For
r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length -1
        Sheet(r +1, c).Value = dt.rows(r)(nms(c))
    Next

Next
Dim
dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg
.Filter= "Excel文件|*.xls" '设置筛选器
If
dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()

End
If




[此贴子已经被作者于2018/8/24 17:39:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1960 积分:15566 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2018/8/24 20:11:00 [只看该作者]

在写入数据时的这新代码中加入判断日期字段的语句,如果为空,则在Excel对应单元写入空值即可.

 

For r As Integer = 0 To dt.Rows.Count - 1

    For c As Integer = 0 To nms.length -1
     if nms(c)="日期" then

       if dt.rows(r).isnull(nms(c)) then
          Sheet(r +1, c).Value =nothing

       else

          Sheet(r +1, c).Value = dt.rows(r)(nms(c))

      end if

 

      else

       Sheet(r +1, c).Value = dt.rows(r)(nms(c))
    end if

    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/24 20:17:00 [只看该作者]

For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    Dim dr As Row = dt.rows(r)
    For c As Integer = 0 To nms.length -1
        If dr.IsNull(nms(c)) = False
            Sheet(r +1, c).Value = dr(nms(c))
        End If
    Next
Next

 回到顶部