Foxtable(狐表)用户栏目专家坐堂 → [求助]把当前表存入已存在的execl文件簿中


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

主题:[求助]把当前表存入已存在的execl文件簿中

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]把当前表存入已存在的execl文件簿中  发帖心情 Post By:2016/8/10 22:13:00 [只看该作者]

求代码:把当前表格存入 d:\项目\AA..xlsm 的“数据”工作表;
            注:工作簿 AA..xlsm   和   工作表“数据”  都是已经存在的;

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/10 22:33:00 [只看该作者]


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/10 23:00:00 [只看该作者]

版主,我参照Copy这一节写的,并修改了路径和名称,试了一下,没写进去。写的时候,execl文件还会打开,能不能不打开文件,直接写入工作簿。帮忙看看错在哪里?

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("d:\项目\AA..xlsm")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("数据") '指定要复制的工作表
With Wb.WorkSheets
   
    Ws.Copy  '复制到一个新工作簿
End With
Wb.Save
App.Quit

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/10 23:03:00 [只看该作者]

 要一个单元格一个单元格的赋值,才能写入内容啊。


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/10 23:21:00 [只看该作者]

太晚了,版主先休息吧。

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/11 10:57:00 [只看该作者]

求版主给写个代码,指点的没看明白。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/11 11:01:00 [只看该作者]

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\Test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
ws.cells(1,1).Value = "123"
ws.cells(1,2).Value = "456"
Wb.Save
App.Quit

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/11 11:47:00 [只看该作者]

我想将foxtable中的当前表  复制到execl中,类似系统中的Toexecl,代码是:Syscmd.Project.ExportToExcel(),但不知道怎么用;


另外,这个代码导出格式选项为    *.xls   或*.xlsx,没有*.xlsm这种格式。我想直接导出至 指定路径下的已存在的文件中。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/11 12:25:00 [只看该作者]


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8440 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/8/11 17:27:00 [只看该作者]

.xlsm”这种带宏的格式写不了,能写的那两种是文件覆盖式的写入,因为原有工作簿的其他工作表都被删除了。看来是系统的问题。
下面是我改的代码,斜体,加黑是去掉不要的:
Dim dt As Table = Tables("表A")
Dim
 Book As New XLS.Book '定义一个Excel工作簿
Dim
 Sheet As XLS.Sheet = Book.Sheets(0'引用工作簿的第一个工作表

'Dim Style As Xls.Style = Book.NewStyle '新建一个样式
'Style.BackColor = Color.Red '样式的背景颜色设为红色

For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For
 r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    
For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    'If
 dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15
        'Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式
    '
End 
If
Next

'打开工作簿

Book.Save("c:\reports\test.xls")

'Dim Proc As New Process 后三行不要,不打开文件写入
'Proc.File = "c:\reports\test.xls"
'Proc.Start()

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