以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:xlx截图代码有误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171754)

--  作者:cxmxjwlmq
--  发布时间:2021/9/8 15:55:00
--  求助:xlx截图代码有误

各位老师:我想打开一个xls表,把一个照片给截图,依照论坛中的帖子进行了修改,但提示没有图片!代码如下:

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok  Then  \'如果用户单击了确定按钮
  Dim ifo As new FileInfo(dlg.FileName)
    MessageBox.Show("你选择的是:" & ifo.Name,"提示") \'提示用户选择的文件
    MessageBox.Show("你选择的是:" & ifo.Path & "\\" & ifo.Name,"提示") \'提示用户选择的文件

Dim App As New MSExcel.Application
\'Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Test.xls")
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(ifo.Path & "\\" & ifo.Name)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)\'指定工作表
    MessageBox.Show("你选择1","提示") \'提示用户选择的文件


Dim range = ws.range("R13:Y28")
    MessageBox.Show("你选择2","提示") \'提示用户选择的文件

range.CopyPicture(Appearance:=1, Format:=2)

    MessageBox.Show("你选择3","提示") \'提示用户选择的文件

If ClipBoard.ContainsImage Then \'判断剪贴板中是否有图片.
     Dim img As Image
     img = ClipBoard.GetImage()
    MessageBox.Show("有照片","提示") \'提示用户选择的文件
Else
    MessageBox.Show("无照片","提示") \'提示用户选择的文件
 End If

\'ClipBoard.GetImage.save("d:\\aaa.jpg")
    MessageBox.Show("你选择4","提示") \'提示用户选择的文件
End If

 

不知道代码那里有误,请老师指点!

谢谢!


--  作者:有点蓝
--  发布时间:2021/9/8 16:03:00
--  
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok  Then  \'如果用户单击了确定按钮
    Dim App As New MSExcel.Application
    \'Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Test.xls")
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)\'指定工作表
    Dim range = ws.range("R13:Y28")
    range.CopyPicture(Appearance:=1, Format:=2)
    If ClipBoard.ContainsImage Then \'判断剪贴板中是否有图片.
        Dim img As Image
        img = ClipBoard.GetImage()
        MessageBox.Show("有照片","提示") \'提示用户选择的文件
    Else
        MessageBox.Show("无照片","提示") \'提示用户选择的文件
    End If
End If

--  作者:cxmxjwlmq
--  发布时间:2021/9/8 20:06:00
--  

老师:

     可能我没有表述清楚,我想要的效果是:把附件中表格R13:Y28部位的内容生成截图,存放在d:\\根目录下并命令为aaa.jpg,用代码总是提示:无照片。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:b00t.xlsx

 

生成一个这样的截图!
 


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

 

请老师费心!


--  作者:有点蓝
--  发布时间:2021/9/9 9:48:00
--  
Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\问题\\b00t.xlsx")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    For Each s As object In ws.Shapes
        s.copy
        ClipBoard.GetImage.save(projectPath & s.TopLeftCell.address & ".jpg")
    Next
    MessageBox.Show("导入成功!","恭喜!")
catch ex As exception
    msgbox(ex.message)
finally
    app.quit
End try

--  作者:cxmxjwlmq
--  发布时间:2021/9/10 9:54:00
--  

完美,辛苦了!

谢谢!