Foxtable(狐表)用户栏目专家坐堂 → 交叉统计生成的统计表,保存为excel后,百分比显示出来是小数


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

主题:交叉统计生成的统计表,保存为excel后,百分比显示出来是小数

美女呀,离线,留言给我吧!
susu312
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
交叉统计生成的统计表,保存为excel后,百分比显示出来是小数  发帖心情 Post By:2018/9/12 10:27:00 [只看该作者]

交叉统计生成的统计表,保存为excel后,百分比显示出来是小数

 


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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/12 10:35:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
susu312
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/12 10:53:00 [只看该作者]

以下是引用有点甜在2018/9/12 10:35:00的发言:

设置单元格格式,如

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=124242&skin=0

 

Dim dt As Table = e.Form.controls("table1").Table
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
 dlg.Filter= "Excel文件|*.xls"  '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
     dt.SaveExcel(dlg.FileName, "统计表")   '保存文件
End  If

 

老师,、

1、我这个涉及到多表头,只能先保存下来,然后设置格式,(多表头文件如何,为了设置格式,重新制作excel时,标题那里算一行么,)

2、我如何判断占比列,或者判断小数Format(0.56,"00.0%") '56.0%

 

Dim dt As Table = Tables("表A")
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表


For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
    If dt.grid.Cols(c+1).Format > "" Then
        Dim Style As Xls.Style = Book.NewStyle '新建一个样式
        Style.Format = dt.grid.Cols(c+1).Format
        sheet.Cols(c).style = style
    End If

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
Next
'打开工作簿
Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()

 

 

 

 

[此贴子已经被作者于2018/9/12 10:56:22编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/12 10:55:00 [只看该作者]

 

生成excel以后,打开文件xls,然后循环每一行(每一列),设置style即可。

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/12 10:59:00 [只看该作者]

不会做把xls文件发上来测试。

 回到顶部
美女呀,离线,留言给我吧!
susu312
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/12 11:14:00 [只看该作者]

以下是引用有点甜在2018/9/12 10:55:00的发言:

 

生成excel以后,打开文件xls,然后循环每一行(每一列),设置style即可。

 

Dim Proc As New Process '打开工作簿
Proc.File =
"c:\reports\test.xls"
Proc.Start()

 

 

Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.ForeColor = Color.Red
'设置样式的字体颜色

 

老师,您可以给我大概写个框架么?

 

我现在可以获得 Dim dt As Table = e.Form.controls("table1").Table

 

1、如何打开,xls

2、设置字体的样式,Format(0.56,"00.0%") '56.0%  style.format么?

3、如何判断处哪些单位格需要转换为百分比,判断出它是小数么?isnumberic好像不行?根据列名么?它是多表头的,列名是怎么个判断呀?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/12 11:21:00 [只看该作者]

1、http://www.foxtable.com/webhelp/scr/1144.htm

 

2、style.format = "0.00%"

 

3、循环第二行的每一列,判断是不是【占比】即可。如果是,就设置样式。


 回到顶部
美女呀,离线,留言给我吧!
susu312
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/9/12 14:37:00 [只看该作者]

以下是引用有点甜在2018/9/12 11:21:00的发言:

1、http://www.foxtable.com/webhelp/scr/1144.htm

 

2、style.format = "0.00%"

 

3、循环第二行的每一列,判断是不是【占比】即可。如果是,就设置样式。

Dim dt As Table = e.Form.controls("table1").Table
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
 dlg.Filter= "Excel文件|*.xls"  '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
     dt.SaveExcel(dlg.FileName, "统计表")   '保存文件
     Dim Book As New XLS.Book(dlg.FileName)
     Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
     Dim Style As XLS.Style = Book.NewStyle() '定义新样式
     Style.Format = "0.00%"
     For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
        For c As Integer = 0 To dt.Cols.Count -1
             If dt.Cols(c).Name = "占比" Then
                   Sheet(r +1, c).Style=Style      
             End If
         Next
     Next
End  If

 

老师,请您帮我看看哪里不对?



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/12 15:45:00 [只看该作者]

Dim dt As Table = CurrentTable '= e.Form.controls("table1").Table
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls"  '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    dt.SaveExcel(dlg.FileName, "统计表")   '保存文件
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As XLS.Style = Book.NewStyle() '定义新样式
    Style.Format = "0.00%"
    For c As Integer = 0 To sheet.Cols.count-1
        If sheet(1,c).text = "占比" Then
            For i As Integer = 2 To sheet.Rows.count-1
                sheet(i, c).Style=Style
            Next
        End If
    Next
    book.save(dlg.FileName)
End  If

 回到顶部