Foxtable(狐表)用户栏目专家坐堂 → 位置问题


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

主题:位置问题

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


加好友 发短信
等级:婴狐 帖子:79 积分:584 威望:0 精华:0 注册:2015/5/27 17:19:00
位置问题  发帖心情 Post By:2015/6/6 8:58:00 [只看该作者]

Dim dt As Table = Tables("订单")
Dim
 Book As New XLS.Book '定义一个Excel工作簿
Dim
 Sheet As XLS.Sheet = Book.Sheets(0'引用工作簿的第一个工作表
Dim
 Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Red '样式的背景颜色设为红色
For
 c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For
 r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    
For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If
 dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式
    
End If
Next

'打开工作簿

Book.Save("c:\reports\test.xls")
Dim
 Proc As New Process 
Proc.File = "c:\reports\test.xls"
Proc.Start()



你如果细心的话,你会发现生成的Excel文件中,日期列内容全变成了数字。
你可以在Excel中手工将日期列的格式设为日期型,但这不是一个好方法。
最好是修改上面的导出代码,在打开工作簿的代码之前插入下面几行:

Dim St2 As XLS.Style = Book.NewStyle
St2.Format = "yyyy-MM-dd"
Sheet.Cols(dt.Cols("日期").Index).Style = st2



具体放在什么地方???

我放了好几个地方  都不对




[此贴子已经被作者于2015/6/6 8:59:13编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/6 9:00:00 [只看该作者]

If dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式
    
End If

替换原来这段即可

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


加好友 发短信
等级:婴狐 帖子:79 积分:584 威望:0 精华:0 注册:2015/5/27 17:19:00
  发帖心情 Post By:2015/6/6 9:05:00 [只看该作者]

还是不对!!导出的还不是日期格式
[此贴子已经被作者于2015/6/6 9:05:47编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/6 9:13:00 [只看该作者]

上例子吧.说明你判断的列名位置不对

 回到顶部