以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请问如何输出XLS单元格为格式化的数值类型  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129860)

--  作者:明天的灵
--  发布时间:2019/1/7 20:22:00
--  [求助]请问如何输出XLS单元格为格式化的数值类型
现通过以下语句输出格式化的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文件的单元格还是数值类型。


--  作者:有点蓝
--  发布时间:2019/1/7 20:44:00
--  
这种只能通过vba来设置:http://www.foxtable.com/webhelp/scr/2121.htm,看NumberFormat用法
--  作者:明天的灵
--  发布时间: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_ "   \'数值
这是对未录入数值的单元格设置,
对于已有数据不起作用。

--  作者:有点甜
--  发布时间: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


--  作者:明天的灵
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间: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

--  作者:明天的灵
--  发布时间:2019/1/9 17:28:00
--  
谢谢甜版主!现在可以了,输出格式保持2位小数点。