Foxtable(狐表)用户栏目专家坐堂 → [求助]7楼上传例子-导入EXCEL报表后如何保持数字格式一致


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

主题:[求助]7楼上传例子-导入EXCEL报表后如何保持数字格式一致

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]7楼上传例子-导入EXCEL报表后如何保持数字格式一致  发帖心情 Post By:2018/5/1 16:00:00 [显示全部帖子]

例如以下代码:
Select Case e.StripItem.Name
    Case "导出"
        Dim t As WinForm.Table = e.Form.Controls("Table1")
        If t.Visible = False Then
            MessageBox.Show("查询结果中没有可导出的记录!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Else
            Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
            dlg.CellStyle = True
            dlg.Filter = "Excel文件|*.xls" '设置筛选器
            dlg.FileName = "往来查询导出-" & e.Form.Controls("ComboBox_关键字").Text & "-" & e.Form.Controls("ComboBox_合同或代码").TEXT
            If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
                Tables(e.Form.Name & "_Table1").SaveExcel(dlg.FileName, "往来查询导出")  '保存文件
            End If
        End If
End Select

执行上面代码后生成的EXCEL报表中数字格式不是0.00,如何使EXCEL中的单元格格式与FT中Table表中一致,谢谢!
[此贴子已经被作者于2018/5/2 20:34:20编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/5/1 19:14:00 [显示全部帖子]

不行,EXCEL中的数值列不是0.00格式,以下是我修改的代码:
            Dim flg As New SaveExcelFlags
            flg.CellStyle = True
            Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
            dlg.Filter = "Excel文件|*.xls" '设置筛选器
            dlg.FileName = "往来查询导出-" & e.Form.Controls("ComboBox_关键字").Text & "-" & e.Form.Controls("ComboBox_合同或代码").TEXT
            If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
                Tables(e.Form.Name & "_Table1").SaveExcel(dlg.FileName, "往来查询导出",flg)  '保存文件
            End If

在窗口中的table表中,我是用以下方式设置格式的:
dt.dataCols("发货量").SetFormat("0.00") '设置数字格式
[此贴子已经被作者于2018/5/1 20:40:35编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/5/2 14:00:00 [显示全部帖子]

甜版,你给的代码是设置FT中表格的数字格式,这个没有问题,我指的是将数据导出至EXCEL后,在EXCEL中显示不按0.00的方式显示,如何解决这个问题?

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/5/2 20:34:00 [显示全部帖子]

甜版,上传了个例子,你看下。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/5/2 21:51:00 [显示全部帖子]

老师,导出的EXCEL还是有问题,虽然确实保留2位数了,但很多数值变成文本型了,你看下导出的EXCEL文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试文件导出.xls



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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/5/2 22:07:00 [显示全部帖子]

用代码确实可以,就是烦了点,另外教程中有几处错误,少了 Data
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
Nex

 回到顶部