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


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

主题:[求助]excel导出格式

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]excel导出格式  发帖心情 Post By:2022/3/29 17:46:00 [只看该作者]

导出的表中,日期列有些是空的,但格式化的时候这些空的行都会变成1900-01-00,怎样在导出数据后,空的还让它继续空着呢

Style99.Format = "yyyy-MM-dd"
For Each r As Row In dt3.Rows
    Dim da1 As String = r("开店日期")
    Dim da2 As String = r("关店日期")
    If da1.length<>0 Then
        Sheet3.Cols(dt3.Cols("开店日期").Index+1).Style = Style99
    End If
    If da2.length<>0 Then
        Sheet3.Cols(dt3.Cols("关店日期").Index+1).Style = Style99
    End If
Next 

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


加好友 发短信
等级:超级版主 帖子:111822 积分:569264 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/29 19:59:00 [只看该作者]

按单元格设置,不要按列设置
For i as integer = 0 to dt3.Rows.count - 1
dim  r As Row = dt3.Rows(i)
……
If da1.length<>0 Then
Sheet3(i+1,dt3.Cols("开店日期").Index+1).Style = Style99

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2022/3/30 10:35:00 [只看该作者]

上面这样还是不行,我改了种方式
For i As Integer = 0 To dt3.Rows.count - 1
Dim d1 As Date
d1 = #01/01/2000#
If dt3.Rows(i)("关店日期")>d1  Then
Sheet3(i,dt3.Cols("关店日期").Index+1).Style = Style99
End If
Next

结果如下图,有些改了,有些改不了,有些会变成1900-01-00

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220330103430.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:111822 积分:569264 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/30 10:58:00 [只看该作者]

贴出完整代码

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2022/3/30 11:52:00 [只看该作者]


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:123.txt




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


加好友 发短信
等级:超级版主 帖子:111822 积分:569264 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/30 12:09:00 [只看该作者]

cnt = 0 
Dim Sheet3 As XLS.Sheet = Book.Sheets(18)
Dim hdr3 As Integer = dt3.HeaderRows
dt3.CreateSheetHeader(Sheet3,0,1)
Sheet3.Cols.Frozen = 3
Sheet3.Rows.Frozen = 1
For c As Integer = 0 To dt3.Cols.Count -1 
If dt3.Cols(c).Visible Then
    For r As Integer = 0 To dt3.Rows.Count(True) - 1
if dt3.rows(r,True).isnull(c) = false
        Sheet3(r + hdr3,cnt+1).value = dt3.rows(r,True)(c)
endif
    Next
cnt = cnt + 1
End If
If dt3.Cols(c).name ="关店日期"  Then
Sheet3(i,c+1).Style = Style99
else
    Sheet3(0, c+1).Style = Style
    Sheet3(1, c+1).Style = Style
endif 
    If dt3.Cols(c).Caption <> "月份" And dt3.Cols(c).Caption <> "事业部" And dt3.Cols(c).Caption <> "部门名称" Then
        Sheet3.Cols(c+1).Width = 120
    End If
        Sheet3.Cols(1).Width = 240
        Sheet3.Cols(3).Width = 60
Next

去掉后面的
For i As Integer = 0 To dt3.Rows.count - 1
Dim d1 As Date
d1 = #01/01/2000#
If dt3.Rows(i)("关店日期")>d1  Then
Sheet3(i,dt3.Cols("关店日期").Index+1).Style = Style99
End If
Next

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2022/8/21 22:03:00 [只看该作者]

在设置导出的excel格式时未生效

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220821215914.png
图片点击可在新窗口打开查看
Style112.Format = "0" '设置数值为整数
For r As Integer = 0 To dt7.Rows.Count(True) - 1
    For c As Integer = 0 To dt7.Cols.Count - 1
     If dt7.Cols(c).Name Like "A吊牌均价*" Or dt7.Cols(c).Name Like "B销售均价*" Then
         Sheet7(r + 3, c + 1).Style = Style112 
    End If
next

列是通过增加临时列生成的,DataTables("同期比较").dataCols.add("A吊牌均价_A本年", GetType(Double))
好象多层表头的时候就会这样

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


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

请上传实例说明

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2022/8/22 9:09:00 [只看该作者]

发现是列顺序或是有隐藏列的原因,需要对表中的每一列按导出的顺序排好序,这样结果就没问题了

 回到顶部