以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导出数据日期显示问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170015)

--  作者:swagger
--  发布时间:2021/7/9 12:29:00
--  导出数据日期显示问题

示例二

如果要导出部分列,或者要自定义列宽,或者要自定义列标题,可以参考下面的代码:

Dim dt As Table = Tables("订单")
Dim
nms() As String = {"产品","客户","数量","单价","金额","日期"} \'要导出的列名
Dim
caps() As String = {"产品名称","用户名称","数量","单价","金额","日期"} \'对应的列标题
Dim
szs() As Integer = {100,100,80,80,80,120} \'对应的列宽
Dim
Book As New XLS.Book \'定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim
st As XLS.Style = Book.NewStyle \'日期列的显示格式
st
.Format = "yyyy-MM-dd"
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

Next
Dim
dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg
.Filter= "Excel文件|*.xls" \'设置筛选器
If
dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()

End
If



根据帮助, 上述代码如果日期是空的话,会显示1900/1/0, 怎样才能显示日期是空? 另外字体也比普通导出的字体要大,怎样才能显示普通导出的正常字体呢?

 


--  作者:有点蓝
--  发布时间:2021/7/9 13:36:00
--  
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To nms.length -1
if dt.rows(r).isnull(nms(c)) = false
        Sheet(r +1, c).Value = dt.rows(r)(nms(c))
endif
    Next

Next