Foxtable(狐表)用户栏目专家坐堂 → [求助]请问如何输出XLS单元格为格式化的数值类型


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

主题:[求助]请问如何输出XLS单元格为格式化的数值类型

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


加好友 发短信
等级:小狐 帖子:373 积分:4426 威望:0 精华:0 注册:2017/2/7 7:41:00
[求助]请问如何输出XLS单元格为格式化的数值类型  发帖心情 Post By:2019/1/7 20:22:00 [只看该作者]

现通过以下语句输出格式化的XLS单元格
Dim dt As Table = Tables("出库表")
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
。。。
 Sheet(2, 3).Value =  Format(dt.rows(10)(金额)),"0.00") '保留二位小数
。。。

以上输出到XLS 文件后,这个单元格的左上角带有文本标志,是文本类型,现在需要保留二位小数的格式下,写入到XLS文件的单元格还是数值类型。


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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/7 20:44:00 [只看该作者]

这种只能通过vba来设置:http://www.foxtable.com/webhelp/scr/2121.htm,看NumberFormat用法

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


加好友 发短信
等级:小狐 帖子:373 积分:4426 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2019/1/7 23:45:00 [只看该作者]

查看上面帮助,
  • 单元格格式是通过NumberFormat或NumberFormatLocal属性来完成的。例如:

    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\Report.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)

  • Ws.Range("B1").NumberFormat = "0_ "   '数值
这是对未录入数值的单元格设置,
对于已有数据不起作用。

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


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

改成比如

 

Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Sheet(2, 3).Value = val(Format(99.123456,"0.00")) '保留二位小数
book.Save("d:\123.xls")
Dim proc As new Process
proc.File = "d:\123.xls"
proc.Start


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


加好友 发短信
等级:小狐 帖子:373 积分:4426 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2019/1/9 12:58:00 [只看该作者]

Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Sheet(2, 3).Value = val(Format(99.123456,"0.00")) '保留二位小数
Sheet(3, 3).Value = val(Format(99.1,"0.00")) '保留二位小数
book.Save("d:\123.xls")
Dim proc As new Process
proc.File = "d:\123.xls"
proc.Start

这样输出后,没有统一的小数点位数,没有达到要保留二位小数的格式的需求
输出XLS如下图:

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

[此贴子已经被作者于2019/1/9 12:59:35编辑过]

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


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

Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim style As xls.style = book.NewStyle
style.Format = "0.00"
Sheet(2, 3).Value = 99.123456
Sheet(2, 3).Style = style
Sheet(3, 3).Value = 99.1
Sheet(3, 3).Style = style
book.Save("d:\123.xls")
Dim proc As new Process
proc.File = "d:\123.xls"
proc.Start

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


加好友 发短信
等级:小狐 帖子:373 积分:4426 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2019/1/9 17:28:00 [只看该作者]

谢谢甜版主!现在可以了,输出格式保持2位小数点。

 回到顶部