以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表按条件导出excel中  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90979)

--  作者:蓝蚂蚁
--  发布时间:2016/9/27 8:32:00
--  表按条件导出excel中


图片点击可在新窗口打开查看此主题相关图片如下:各科室出库表.jpg
图片点击可在新窗口打开查看

 

下图是导出的excel格式

图片点击可在新窗口打开查看此主题相关图片如下:理想结果.jpg
图片点击可在新窗口打开查看
 在表A中按月份筛选之后,按要求格式导出到excel中。不知道Foxtable能不能实现。 谢谢老师!

[此贴子已经被作者于2016/9/27 8:32:47编辑过]

--  作者:蓝蚂蚁
--  发布时间:2016/9/27 8:35:00
--  
实例
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:各科室统计.zip


--  作者:有点蓝
--  发布时间:2016/9/27 8:44:00
--  
用代码导出,参考:http://www.foxtable.com/webhelp/scr/1148.htm
--  作者:蓝蚂蚁
--  发布时间:2016/9/28 8:46:00
--  

DataTables("表B").DataRows.Clear
Dim f As New Filler
f.SourceTable = DataTables("表A") \'指定数据来源
f.SourceCols ="手术室_低值金额,手术室_低值张数,手术室_普通低值备注" \'指定数据来源列
f.DataTable = DataTables("表B") \'指定数据接收表
f.Filter = Tables("表A").Filter & iif(Tables("表A").Filter > ""," and ","") & " 手术室_低值金额 is not null"
f.DataCols="金额,张数,备注" \'指定数据接收列
f.Fill() \'填充数据

 

 用上面的代码 只能填充金额,张数,备注 但【科室】、【类别】不知道如何用代码填充



图片点击可在新窗口打开查看此主题相关图片如下:image 2.jpg
图片点击可在新窗口打开查看

 

如何用代码填充紫色方框里面的数据  思路是:如果" 手术室_低值金额 is not null" 则填充【科室】=“手术室”,【类别】=“低值” ,其他的数据相应的类推。 麻烦老师帮解答一下 谢谢

[此贴子已经被作者于2016/9/28 8:53:56编辑过]

--  作者:blackzhu
--  发布时间:2016/9/28 8:48:00
--  
 打印模板,先按照条件筛选再导出
--  作者:蓝蚂蚁
--  发布时间:2016/9/28 8:56:00
--  
我是新用户 脑子有点笨 你能详细指导吗 非常谢谢
--  作者:蓝蚂蚁
--  发布时间:2016/9/28 9:00:00
--  

新的实例

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:各科室统计.zip


--  作者:有点蓝
--  发布时间:2016/9/28 11:22:00
--  
Dim dt As Table = Tables("表A")
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim cls() As String = {"科室","类别","金额","张数","备注"}
Dim cls2() As String = {"手术室_低值","手术室_高值","外科_低值"}
For c As Integer = 0 To cls.Length  -1 \'添加列标题
    Sheet(0, c).Value = cls(c)
Next
For k As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    Dim r As Integer = k*3
    Sheet(r +1, 0).Value = "手术室"
    Sheet(r +1, 1).Value = "低值"
    Sheet(r +2, 0).Value = "手术室"
    Sheet(r +2, 1).Value = "高值"
    Sheet(r +3, 0).Value = "外科"
    Sheet(r +3, 1).Value = "低值"
    Sheet.MergeCell(r +1,0,2,1)
    For i As Integer = 0 To cls2.Length  -1
        For j As Integer = 2 To cls.Length  -1
            Sheet(r + i + 1, j).Value = dt.Rows(k)(cls2(i) & cls(j))
        Next
    Next
Next
\'打开工作簿
Book.Save("F:\\test.xls")
Dim Proc As New Process
Proc.File = "F:\\test.xls"
Proc.Start()

--  作者:蓝蚂蚁
--  发布时间:2016/9/28 11:30:00
--  

有点蓝,终于盼到你了 先谢谢

按照你的代码得出的结果如下图,但问题是有很多重复了,麻烦老师再帮我看看。

 


图片点击可在新窗口打开查看此主题相关图片如下:222222.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2016/9/28 11:55:00
--  
那是你的数据有空行,删除即可