以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- WPS AND OFFICE (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89618) |
-- 作者:huhu -- 发布时间:2016/8/25 15:20:00 -- WPS AND OFFICE 导出按钮代码。如果是本机装的是wps,导出的xls打开有数据且正确。另外一个同事装的是office,同样导出的是xls,有这个文件,但是打开数据是空的,这是怎么回事? Dim r As Row = Tables("库存管理界面_table7").Current DataTables("扫描配货明细").LoadFilter = "收货单号 = \'" & r("收货单号") & "\' and (状态 = \'生产结束扫描完成\' or 状态 = \'生成收货单\')" DataTables("扫描配货明细").Load Dim ex As New Exporter ex.SourceTableName = "扫描配货明细" \'指定导出表 ex.FilePath = "D:\\SN\\" & r("收货单号") & "_" & r("工单号行号") & ".xls" ex.Format = "Excel" \'导出格式为Excel ex.Fields = "SN" \'指定导出字段 ex.Export() \'开始导出 Dim n As New MailSender n.Host = "mail.bdcom.com.cn" n.Account = "factory@bdcom.com.cn" n.Password = "Encrypt228HqJ4Mg" n.From = "factory@bdcom.com.cn" n.AddReceiver("liujiyong@bdcom.com.cn") n.Title = "库存管理系统SN" & "工单号-行号:" & r("工单号行号") & "对应收货单号:" & r("收货单号") & "的全部序列号如附件,请打卡通" n.AddAttachments(ex.FilePath) n.SendAsync() MessageBox.show("保存路径:" & ex.FilePath,"导出成功",MessageBoxButtons.OK,MessageBoxIcon.Information)
|
-- 作者:huhu -- 发布时间:2016/8/25 16:20:00 -- 还有一个问题,假如已经存在了这个xls。就会提示下面的信息。能不让它弹出或者提示准确的xls的名称已经存在。然后直接覆盖。 .NET Framework 版本:2.0.50727.7905 Foxtable 版本:2016.7.29.1 错误所在事件: 详细错误信息: 表 \'扫描配货明细\' 已存在。
|
-- 作者:大红袍 -- 发布时间:2016/8/25 16:53:00 -- 不要用Export导出,直接用saveExcel比较好
|
-- 作者:huhu -- 发布时间:2016/8/25 16:58:00 -- saveExcel应该导出是这个表吧,我只想导出这个表的SN列,其它列不需要。能指定save列吗? |
-- 作者:大红袍 -- 发布时间:2016/8/25 17:10:00 -- 以下是引用huhu在2016/8/25 16:58:00的发言:
saveExcel应该导出是这个表吧,我只想导出这个表的SN列,其它列不需要。能指定save列吗?
你把不需要的列隐藏,不就行了?
直接用代码导出,也可以 http://www.foxtable.com/webhelp/scr/1148.htm
|
-- 作者:huhu -- 发布时间:2016/8/25 17:43:00 -- 怎么导出了全部列?不是指定了SN列么。 Dim dt As Table = Tables("扫描配货明细") Dim nms() As String = {"SN"} \'要导出的列名 Dim caps() As String = {"SN"} \'对应的列标题 Dim szs() As Integer = {150} \'对应的列宽 Dim Book As New XLS.Book \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For c As Integer = 0 To nms.length -1 Sheet(0, c).Value = caps(c) \'指定列标题 Sheet.Cols(c).Width = szs(c) \'指定列宽 Next For r1 As Integer = 0 To dt.Rows.Count - 1 \'填入数据 For c As Integer = 0 To nms.length -1 Sheet(r1 +1, c).Value = dt.rows(r1)(nms(c)) Next Next Tables("扫描配货明细").SaveExcel("D:\\SN\\" & r("收货单号") & "_" & r("工单号行号") & ".xls","序列号明细")
|
-- 作者:nblwar -- 发布时间:2016/8/25 20:09:00 -- 想起我刚开始时候傻傻的样子 |
-- 作者:nblwar -- 发布时间:2016/8/25 20:13:00 -- 最后一句代码跟上面的是分开用的,你放到一起去了能行吗 |
-- 作者:nblwar -- 发布时间:2016/8/25 20:25:00 -- Dim t As Table = Tables("扫描配货明细") Dim filepath As String = "D:\\SN\\" & r("收货单号") & "_" & r("工单号行号") & ".xls" \'报表编程\' Dim Book As New XLS.Book \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 Sheet(0, 0).Value = "SN" \'指定列标题 Sheet.Cols(0).Width = 150 \'指定列宽 For r As Integer = 0 To t.Rows.Count - 1 \'填入数据 Sheet(r + 1, 0).Value = t.rows(r)("SN") Next Book.Save(filepath) \'启动 Dim Proc As New Process Proc.File = filepath Proc.Start()
|