Foxtable(狐表)用户栏目专家坐堂 → 统计表导成excel控制小数点后两位,提示错误


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

主题:统计表导成excel控制小数点后两位,提示错误

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/6 10:22:00 [显示全部帖子]

关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/6 15:25:00 [显示全部帖子]

定义的数组长度是10000也,Dim nms(10000) As String

For c As Integer = 0 To nms.length -1  -- 也就是nms.length -1= 9999

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/6 15:26:00 [显示全部帖子]

改为
Dim nms(Tables("统计表2").Cols.Count - 1) As String

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/6 17:00:00 [显示全部帖子]

这个比较麻烦,根据下划线拆分,然后分别填入上下2行的单元格,判断刚刚填入的第一行的单元格如果和左边的单元格内容一样就合并:http://www.foxtable.com/webhelp/topics/1153.htm

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/6 17:38:00 [显示全部帖子]

For c As Integer = 0 To nms.length -1
dim ar() as string = caps(c) .split("_")
    Sheet(0, c).Value = ar(0)  '指定列标题
if  ar.length = 2 then 
 Sheet(1, c).Value = ar(1) 
end if
    Sheet.Cols(c).Width = szs(c) '指定列宽
    If **********  这里加个什么判断进行表头处理啊?

    End If
Next

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/7 10:34:00 [显示全部帖子]

Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim nms() As String = {"aa_01","aa_o2", "aaaaa", "cc_00", "bb_01", "bb_02", "bb_03", "mmmmm", "dd_02"}
Dim t As String = "aa"
Dim idx As Integer = 0
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.AlignHorz = XLS.AlignHorzEnum.Center

For i As Integer = 0 To nms.Length - 1
    Dim ss() As String = nms(i).Split("_")
    Sheet(0, i).Value = ss(0)
    If ss.Length > 1 Then
        Sheet(1, i).Value = ss(1)
    End If
    If t <> ss(0) Then
        If i - idx <> 1
            Sheet.MergeCell(0,idx,1,i - idx)
            Sheet(0,idx).style = Style
        End If
        t = ss(0)
        idx = i
    End If
Next
Book.Save("D:\test.xls") '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = "D:\test.xls"
Proc.Start()

 回到顶部