以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]7楼上传例子-导入EXCEL报表后如何保持数字格式一致  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118390)

--  作者:huangfanzi
--  发布时间:2018/5/1 16:00:00
--  [求助]7楼上传例子-导入EXCEL报表后如何保持数字格式一致
例如以下代码:
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编辑过]

--  作者:有点甜
--  发布时间:2018/5/1 18:25:00
--  

设置flags参数

 

http://www.foxtable.com/webhelp/scr/0559.htm

 


--  作者:huangfanzi
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2018/5/2 9:45:00
--  

设置一下列属性

 

http://www.foxtable.com/webhelp/scr/0050.htm

 

或者用代码处理

 

DataTables("表c").DataCols("第九列").Decimals = 2
DataTables("表C").DataCols("第九列").SetFormat("0.00")


--  作者:huangfanzi
--  发布时间:2018/5/2 14:00:00
--  
甜版,你给的代码是设置FT中表格的数字格式,这个没有问题,我指的是将数据导出至EXCEL后,在EXCEL中显示不按0.00的方式显示,如何解决这个问题?
--  作者:有点甜
--  发布时间:2018/5/2 14:18:00
--  
以下是引用huangfanzi在2018/5/2 14:00:00的发言:
甜版,你给的代码是设置FT中表格的数字格式,这个没有问题,我指的是将数据导出至EXCEL后,在EXCEL中显示不按0.00的方式显示,如何解决这个问题?

 

如4楼设置以后,我再导出,格式就是正常的格式。我测试没问题。

 

如果有问题,实例发上来测试。


--  作者:huangfanzi
--  发布时间:2018/5/2 20:34:00
--  
甜版,上传了个例子,你看下。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



--  作者:有点甜
--  发布时间:2018/5/2 21:27:00
--  

bug,因为窗口表没有设置【固定小数位数】的设置。

 

变通一下处理,drawcell事件,写代码

 

If e.Table.grid.Cols(e.Col.name).Format > "" Then
    e.text = format(val(e.text), e.Table.grid.Cols(e.Col.name).Format)
End If

 

如果排序,参考 http://www.foxtable.com/webhelp/scr/1786.htm

 


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



--  作者:有点甜
--  发布时间:2018/5/2 21:53:00
--  

bug,没办法,目前只能这样。

 

要不你用代码导出 http://www.foxtable.com/webhelp/scr/1148.htm