以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请问在导出时能否选择所需要的列 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110836) |
||||
-- 作者:hopestarxia -- 发布时间:2017/12/10 22:25:00 -- 请问在导出时能否选择所需要的列 请在要导出窗口中的Table表时,能不能可以选择需要导出的列? |
||||
-- 作者:hopestarxia -- 发布时间:2017/12/10 22:49:00 -- 注:不是要提前写好在代码里的,是想点导出时能出来一个对话框,可以选择需要导出的列。 |
||||
-- 作者:有点甜 -- 发布时间:2017/12/10 23:29:00 -- 参考
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=109839&authorid=0&page=0&star=3
|
||||
-- 作者:hopestarxia -- 发布时间:2017/12/11 15:50:00 -- 老师,请问导出选择列的这个代码出来的是要导出的表的表列的列名,列名设计数据库时都是用的拼音代表了,请问能用表的标题吗? 或是自己定义列名。
Dim lieming As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox") Dim s As String For Each c As Col In Tables("GXGL").cols s=s &"|"& c.Name Next lieming.ComboList=s |
||||
-- 作者:有点甜 -- 发布时间:2017/12/11 15:57:00 -- 可以这样写,在最后打印的代码那里,也要对应略微修改代码。
Dim lieming As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox") |
||||
-- 作者:hopestarxia -- 发布时间:2017/12/11 16:43:00 -- 老师我这是选择后按选择的列导出EXCEL表,我最早的导出的按钮代码如下,现在已经不能用了。 Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Tables("gxms").SaveExcel(dlg.FileName, "基础个性资料信息表") \'保存文件 MessageBox.show("导出成功") End If 参考帮助说明,提示在表中找不到对应的列。 Dim ckl As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox") 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)) End If Next 看意思是应该在这一步写代码做转换,不知道该 怎么操作。请老师指导。 ----------------------------------------------------------------------------------------- If nms.Count = 0 Then MessageBox.Show("至少要选择一列","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return End If \'生成Excel表 Dim dt As Table = Tables("GXGL") Dim Book As New XLS.Book Dim Sheet As XLS.Sheet = Book.Sheets(0) For i As Integer = 0 To nms.count -1 Sheet(0, i).Value = nms(i) Next For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据 For i As Integer = 0 To nms.count -1 Sheet(r + 1, i).Value = dt.rows(r)(nms(i)) Next Next \'保存并打开excel文件 Book.Save("c:\\reports\\test.xls") Dim Proc As New Process Proc.File = "c:\\reports\\test.xls" Proc.Start() |
||||
-- 作者:有点蓝 -- 发布时间:2017/12/11 17:45:00 -- Dim ckl As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox") 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).split("(")(1).replace(")","")) \'这里对应5楼的用法进行解析 End If Next
[此贴子已经被作者于2017/12/11 20:36:39编辑过]
|
||||
-- 作者:hopestarxia -- 发布时间:2017/12/11 18:22:00 -- 老师,出现了运行错误窗口,内容"索引起出了数组界限"的提示。 |
||||
-- 作者:有点甜 -- 发布时间:2017/12/11 18:57:00 -- 以下是引用hopestarxia在2017/12/11 18:22:00的发言:
老师,出现了运行错误窗口,内容"索引起出了数组界限"的提示。
做个实例发上来测试下。 |
||||
-- 作者:hopestarxia -- 发布时间:2017/12/11 20:06:00 --
老师附件已上传; 软件版本:开发版最新版,数据库SQL2005, 问题所在:软件窗口(货品列表),打开后点上面的“导出”按钮,想选择列后导出到EXCEL,结果在“导出选择”的窗口上的"导出“按钮那里报错了。,
|