Dim ckl As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim dt As Table = Tables("表A")
Dim cvw As String = dt.getColVisibleWidth
Dim nms As New List(of String)
For i As Integer = 0 To ckl.Items.count - 1 '获取已经勾选的列
If ckl.GetItemChecked(i) Then
nms.Add(ckl.Items(i))
Else
dt.Cols(ckl.Items(i)).Visible = False
End If
Next
If nms.Count = 0 Then
MessageBox.Show("至少要选择一列","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
End If
'生成Excel表
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
dt.CreateSheetHeader(Sheet) '生成表头
Dim rcount As Integer = dt.HeaderRows
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
For i As Integer = 0 To nms.count -1
Sheet(r + rcount, i).Value = dt.rows(r)(nms(i))
Next
Next
dt.SetColVisibleWidth(cvw)
'保存并打开excel文件
Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()