以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]呼叫大红袍老师!导出逻辑列怎么显示是或者否,不用报表!!!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=83962)

--  作者:klg1011
--  发布时间:2016/4/20 12:01:00
--  [求助]呼叫大红袍老师!导出逻辑列怎么显示是或者否,不用报表!!!
Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
     Tables("销售台账").SaveExcel(dlg.FileName, "销售台账")  \'保存文件
End If

1、我要使用上面的代码导出数据,而且逻辑列数据能显示为是  或者 否,怎么写代码?

2、excel报表有点繁琐,

3、类似下面的代码导出的数据列位置和table里显示的位置不一致(这点应该是和我创建表时增加新列的先后顺序有关),而且数据字体看上去很不友好,所以我就想在上面代码的基础上修改。
\'For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
            \'For c As Integer = 0 To dt.Cols.Count -1
                \'If dt.Cols(c).IsBoolean Then
                    \'If dt.rows(r)(c)=True Then
                        \'Sheet(r + 1, c).Value = "是"
                    \'End If
                \'Else
                    \'Sheet(r +1, c).Value = dt.rows(r)(c)
                \'End If
            \'Next
        \'Next  
[此贴子已经被作者于2016/4/20 13:32:54编辑过]

--  作者:大红袍
--  发布时间:2016/4/20 12:23:00
--  
Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Tables("表A").SaveExcel(dlg.FileName, "销售台账")  \'保存文件
    Dim Book As New XLS.Book(dlg.FileName) \'定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets("销售台账") \'引用工作簿的第一个工作表
    For i As Integer = 1 To sheet.Rows.count-1
        For j As Integer = 0 To sheet.cols.count-1
            If sheet(i, j).Text = "1" Then
                sheet(i, j).Value = "是"
            ElseIf sheet(i, j).Text = "0" Then
                sheet(i,j).value = "否"
            End If
        Next
    Next
    book.Save(dlg.FileName)
End If

 


--  作者:klg1011
--  发布时间:2016/4/20 13:00:00
--  
大红袍老师,原来导出后excel表里逻辑列显示的是TRUE或FALSE,但是我把代码改成下面的了,还是不行
For j As Integer = 0 To sheet.cols.count-1
            If sheet(i, j).Text = "TRUE" Then
                sheet(i, j).Value = "是"
            ElseIf sheet(i, j).Text = "FALSE" Then
                sheet(i,j).value = "否"
            End If
        Next

如果用1  或者 0,倒是可以把逻辑列改成是 、否,但是表里面其他数据列有的是0的,这样也被改成否了。

--  作者:klg1011
--  发布时间:2016/4/20 13:29:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看呼叫大红袍老师
[此贴子已经被作者于2016/4/20 13:28:53编辑过]

--  作者:klg1011
--  发布时间:2016/4/20 14:09:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
--  作者:大红袍
--  发布时间:2016/4/20 14:24:00
--  

Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Tables("表A").SaveExcel(dlg.FileName, "销售台账")  \'保存文件
    Dim Book As New XLS.Book(dlg.FileName) \'定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets("销售台账") \'引用工作簿的第一个工作表
    For j As Integer = 0 To sheet.cols.count-1
        Dim cname As String = sheet(0, j).Text
        If Tables("表A").cols(cname).IsBoolean Then
            For i As Integer = 1 To sheet.Rows.count-1
                If sheet(i, j).Text = "1" Then
                    sheet(i, j).Value = "是"
                ElseIf sheet(i, j).Text = "0" Then
                    sheet(i,j).value = "否"
                End If
            Next
        End If
    Next
    book.Save(dlg.FileName)
End If

 


--  作者:klg1011
--  发布时间:2016/4/20 17:19:00
--  
谢谢  老师!