Foxtable(狐表)用户栏目专家坐堂 → 导出excel时,日期列出错了,求助?


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

主题:导出excel时,日期列出错了,求助?

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
导出excel时,日期列出错了,求助?  发帖心情 Post By:2016/7/16 20:34:00 [只看该作者]

为什么我导出excel时,日期列中的空白单元格中都出现了错误的时间了,如图"1900-01-00"对应的狐表中的单元格都是空白的,求助?怎么办?
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160716202633.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2016/7/16 20:34:00 [只看该作者]

想要和狐表一样,有时间就有时间,没有时间就空白,求老现指点?

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2016/7/17 9:16:00 [只看该作者]

今天老师休息,有没有大侠指点一下?

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/7/18 8:46:00 [只看该作者]

我测试没有问题,您把这个表发上来看看。

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2016/7/18 10:48:00 [只看该作者]

判断时期列,按大于1900-01-01的条件导出,或将其改写为空白!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/19 1:15:00 [只看该作者]

 我测试没问题。你是如何导出的?

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2016/7/24 0:31:00 [只看该作者]

如下,是我导出的代码:

Dim dt As Table = Tables("峰和设计部_table1")
Dim nms() As String = {"接单日期","量房时间","市场部","设计师","操作性","客户姓名","联系电话","小区地址","楼号","区域","面积","平面定金","立面定金金额","预收设计费","当月预签","预签时间","户型","设计部客户操作备注"} '要导出的列名 
Dim caps() As String = {"接单日期","量房时间","市场部","设计师","操作性","客户姓名","联系电话","小区地址","楼号","区域","面积","平面定金","立面定金金额","预收设计费","当月预签","预签时间","户型","设计部客户操作备注"} '对应的列标题 
Dim szs() As Integer = {90,90,70,70,70,80,100,90,80,70,50,80,80,85,80,90,40,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

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/7/24 8:14:00 [只看该作者]

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

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

也就是跳过空值

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7193 威望:0 精华:0 注册:2013/5/24 12:29:00
  发帖心情 Post By:2016/7/24 9:53:00 [只看该作者]

感谢爸爸,谢谢!

 回到顶部