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


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

主题:[分享]+[求助]直接向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 [显示全部帖子]

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

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


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

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

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


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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
samica
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

以下是引用lin_hailun在2012-12-28 16:13:00的发言:
 楼上,什么叫做引用筛选的值,不就是你上面那样写的么?

林老师,这样写的代码,运行的时候还是出现8楼的错误,我不知道原因在哪?您给费心分析一下。

奇怪了,我恢复成一楼的代码,也出现8楼的运行错误。

[此贴子已经被作者于2012-12-28 16:20:01编辑过]

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


加好友 发短信
等级:幼狐 帖子:148 积分:1036 威望:0 精华:0 注册:2012/11/26 13:05:00
  发帖心情 Post By:2012/12/29 11:00:00 [显示全部帖子]

折腾了一晚上加一上午,刚才突然想到我的工作表模版会不会有问题,结果一查,问题果然是出在模版上,定义好的模版未保存,而导致了8楼的错误。
感谢林老师的帮助!
我对我的低级错误感到羞愧。

 回到顶部