以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  能否帮助写一下代码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109082)

--  作者:xxfoxtable
--  发布时间:2017/11/3 17:46:00
--  能否帮助写一下代码?

Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
Tables("纳税人档案").SaveExcel(dlg.FileName, "纳税人档案") \'保存文件
End If

导出逻辑字段时显示是或者否,而不是true和false


--  作者:有点甜
--  发布时间:2017/11/3 18:22:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=108983&skin=0

 


--  作者:xxfoxtable
--  发布时间:2017/11/3 18:27:00
--  

没看明白帮助


--  作者:有点甜
--  发布时间:2017/11/3 18:30:00
--  

照抄

 

http://www.foxtable.com/webhelp/index.htm?page=1148.htm

 


--  作者:xxfoxtable
--  发布时间:2017/11/3 19:41:00
--  

Dim dt As Table = Tables("纳税人档案")
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 dt.Rows.Count - 1
     If dt.Cols(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 dt.Rows.Count- 1
        If dt.rows(r)
            Sheet(r +1, c).Value ="是"
        ElseIf not dt.rows(r)
            Sheet(r +1, c).Value ="否"
        Else
            Sheet(r +1, c).Value = dt.rows(r)
        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

真不会抄了,请甜老师帮助改一下,谢谢


--  作者:有点蓝
--  发布时间:2017/11/3 20:32:00
--  
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"
Dim t As Table = Tables("纳税人档案")
Dim c As Col
For i As Integer = 0 To t.Cols.Count -1
    c = t.Cols(i)
    Sheet(0, i).Value = c.Name \'指定列标题
    If c.IsDate Then \'如果是日期列
        Sheet.Cols(i).Style = st \'设置显示格式
    End If
Next

For r As Integer = 0 To t.Rows.Count - 1 \'填入数据
    For j As Integer = 0 To t.Cols.Count -1
        c = t.Cols(j)
        If c.IsBoolean Then
            Sheet(r +1, j).Value = IIF(t.rows(r)(t.Cols(j).Name),"是","否")
        Else
            Sheet(r +1, j).Value =t.rows(r)(t.Cols(j).Name)
        End If
    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

--  作者:xxfoxtable
--  发布时间:2017/11/3 20:46:00
--  

谢谢蓝老师,If c.IsBoolean Then
            Sheet(r +1, j).Value = IIF(t.rows(r)(t.Cols(j).Name),"是","否")
        ElseIf c.IsDate Then
            If t.rows(r)(t.Cols(j).Name)=#01/01/1900# Then
                Sheet(r +1, j).Value =""
            End If
        Else
            Sheet(r +1, j).Value =t.rows(r)(t.Cols(j).Name)
        End If

日期我加了一个判断,这样写的,但无效呢,日期全不显示了


--  作者:有点蓝
--  发布时间:2017/11/3 20:50:00
--  
If t.rows(r).isnull(t.Cols(j).Name) Then
    Sheet(r +1, j).Value =""
Else
    Sheet(r +1, j).Value = t.rows(r)(t.Cols(j).Name)
End If