Foxtable(狐表)用户栏目专家坐堂 → [分享]+[求助]直接向excel工作表打印的通用代码。


  共有8881人关注过本帖树形打印复制链接

主题:[分享]+[求助]直接向excel工作表打印的通用代码。

帅哥哟,离线,有人找我吗?
samica
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:148 积分:1036 威望:0 精华:0 注册:2012/11/26 13:05:00
[分享]+[求助]直接向excel工作表打印的通用代码。  发帖心情 Post By:2012/12/28 14:03:00 [只看该作者]

[分享]直接向excel工作表打印的通用代码:
Dim app As New MSExcel.Application
Dim book As MSExcel.Workbook = app.Workbooks.Open(ProjectPath & "Reports\book1.xls")
Dim sheet As MSExcel.Worksheet = book.Sheets("Sheet2")
Dim tb As Table = Tables("表A")
Dim ColNames As String() = New String(){"列1", "列2", "列3"}
For c As Integer = 0 To ColNames.Length - 1 
    For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
        sheet.Cells(r + 5, c + 1).value = tb.Rows(r)(ColNames(c))
    Next
Next
app.Visible = True
sheet.PrintPreview()
book.saved=True
book.Close()
app.Quit()
[求助]如何在上面的代码中加入条件:譬如在窗体中加入两个datetimepicker控件
Dim rq_Stat As Date = e.Form.Controls("datetimepicker1").value
Dim rq_End As Date = e.Form.Controls("datetimepicker2").value
进行日期时间条件限制,请高手指导!谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
samica
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:148 积分:1036 威望:0 精华:0 注册:2012/11/26 13:05:00
  发帖心情 Post By:2012/12/28 14:26:00 [只看该作者]

林老师在吗?您给看看,给个意见。谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/28 14:42:00 [只看该作者]

 
Dim rq_Stat As Date = e.Form.Controls("datetimepicker1").value
Dim rq_End As Date = e.Form.Controls("datetimepicker2").value

Dim app As New MSExcel.Application
Dim book As MSExcel.Workbook = app.Workbooks.Open(ProjectPath & "Reports\book1.xls")
Dim sheet As MSExcel.Worksheet = book.Sheets("Sheet2")
Dim tb As Table = Tables("表A")
Dim ColNames As String() = New String(){"列1", "列2", "列3"}
For c As Integer = 0 To ColNames.Length - 1
    For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
        If tb.Cols(ColNames(c)).IsDate Then
            If tb.Rows(r)(ColNames(c)) >= rq_start AndAlso tb.Rows(r)(ColNames(c)) <= rq_end Then
                sheet.Cells(r + 5, c + 1).value = tb.Rows(r)(ColNames(c))
            End If
        Else

            sheet.Cells(r + 5, c + 1).value = tb.Rows(r)(ColNames(c))
        End If
    Next
Next
app.Visible = True
sheet.PrintPreview()
book.saved=True
book.Close()
app.Quit()
[此贴子已经被作者于2012-12-28 15:05:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/28 14:44:00 [只看该作者]

 导出数据也可以这样。

http://www.foxtable.com/help/topics/1148.htm

 回到顶部
帅哥哟,离线,有人找我吗?
samica
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:148 积分:1036 威望:0 精华:0 注册:2012/11/26 13:05:00
  发帖心情 Post By:2012/12/28 14:52:00 [只看该作者]

林老师,点确定后出现错误框:

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


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/28 15:06:00 [只看该作者]

 已修改,再复制应该可以了。

 回到顶部
帅哥哟,离线,有人找我吗?
samica
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:148 积分:1036 威望:0 精华:0 注册:2012/11/26 13:05:00
  发帖心情 Post By:2012/12/28 15:45:00 [只看该作者]

林老师,能否指定列名,进行条件限制?
图片点击可在新窗口打开查看此主题相关图片如下:snap2.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/28 15:52:00 [只看该作者]

以下是引用samica在2012-12-28 15:45:00的发言:
林老师,能否指定列名,进行条件限制?
图片点击可在新窗口打开查看此主题相关图片如下:snap2.png
图片点击可在新窗口打开查看


你说的限制,次序应该错了。你应该在数据表里筛选以后再打印到excel里的。

 回到顶部
帅哥哟,离线,有人找我吗?
samica
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:148 积分:1036 威望:0 精华:0 注册:2012/11/26 13:05:00
  发帖心情 Post By:2012/12/28 16:04:00 [只看该作者]

林老师,我不知道如何引用筛选的值,请您指导,谢谢!
Dim app As New MSExcel.Application
Dim book As MSExcel.Workbook = app.Workbooks.Open(ProjectPath & "Reports\book1.xls")
Dim sheet As MSExcel.Worksheet = book.Sheets("Sheet2")
Dim rq_Stat As Date = e.Form.Controls("datetimepicker1").value
Dim rq_End As Date = e.Form.Controls("datetimepicker2").value
Dim tb As Table = Tables("表A")
Tables(" 表A ").Filter = "[列3] >= #"& rq_stat &"# And [列3] <= #"& rq_end &"#"

Dim ColNames As String() = New String(){"列1", "列2", "列3"}
For c As Integer = 0 To ColNames.Length - 1 
    For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
        sheet.Cells(r + 5, c + 1).value = tb.Rows(r)(ColNames(c))
    Next
Next
app.Visible = True
sheet.PrintPreview()
book.saved=True
book.Close()
app.Quit()
[此贴子已经被作者于2012-12-28 16:11:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/28 16:13:00 [只看该作者]

 楼上,什么叫做引用筛选的值,不就是你上面那样写的么?

 回到顶部
总数 15 1 2 下一页