| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2384 人关注过本帖
标题:如何将 EXCEL 文件转换成图片
只看楼主 加入收藏
听水吟
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-9-16
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:9 
如何将 EXCEL 文件转换成图片
如何将EXCEL文件转换成图片,在网上找了一段程序,有很多错误,怎么改?
 Public Function ConvertExcelTOImage() As String  '将EXCEL转换成图片
 
        Dim excelFilePath As String
        excelFilePath = "E:\20140814EQ2008_Dll_VB\运行图甲.xls"
        
        Dim SaveExcelJPG As String
        SaveExcelJPG = "E:\20140814EQ2008_Dll_VB\1.jpg"
        
        Dim app As Microsoft.Office.Interop.Excel.Application
        app = New Microsoft.Office.Interop.Excel.Application
  
        app.CutCopyMode = False
        app.Visible = False
        
        Dim objMis As Object=Type.Missing
        
        Dim singleExcel As Microsoft.Office.Interop.Excel.Workbook
        singleExcel = app.Workbooks.Open(excelFilePath, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis)
        
        Try
            Dim wsheet As Microsoft.Office.Interop.Excel.Worksheet
            wsheet = singleExcel.Worksheets(1)
            
            Dim ranobj As Object
            ranobj = DBNull.Value
            
            wsheet.Range("A1", "Z106").Copy (ranobj)
            
            Dim iData As IDataObject
            iData = Clipboard.GetDataObject()
            
            Dim bits As Bitmap
            bits = iData.GetData(DataFormats.Bitmap)
            
            Dim myBitmap As Bitmap
            myBitmap=New Bitmap(bits.Width,bits.Height)
            
            Dim g As Graphics
            g = Graphics.FromImage(myBitmap)
            
            g.DrawImage(bits,0,0)
            
            myBitmap.Save(String.Format(SaveExcelJPG, Guid.NewGuid()))
            
            Clipboard.Clear()
            
            myBitmap.Dispose()
            
            bits.Dispose()
            
            Return ""
            
        Catch ex As Exception
            ' KillProcess("EXCEL")
            Return ex.Message
        Finally
            Clipboard.Clear()
            ' KillProcess("EXCEL")
        End Try
    End Function
搜索更多相关主题的帖子: 运行图 EXCEL 图片 如何 
2014-09-16 15:33
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:7 
顶下贴,大家帮忙看看

我不是砖家,要努力成为砖家。
2014-09-17 09:20
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:7 
Dim app As Microsoft.Office.Interop.Excel.Application
        app = New Microsoft.Office.Interop.Excel.Application
第一次看到这样的写法:
下面还有
        Dim singleExcel As Microsoft.Office.Interop.Excel.Workbook
        Try                                                            <- 看到这个关键字,你确定这是 VB6 的代码吗??

            Dim wsheet As Microsoft.Office.Interop.Excel.Worksheet


===============
原理看懂了。
         在 EXCEL中,有这个功能,复制的数据,可以粘贴为图片,然后再把这个图片 保存起来就是了。

授人于鱼,不如授人于渔
早已停用QQ了
2014-09-17 15:20
听水吟
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-9-16
收藏
得分:0 
回复 3 楼 风吹过 b
我也怀疑是不是应该是C的语句,要不怎么出现这么多错误,是我把它改成两句的它的原句是:
 Dim app As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application()

Dim singleExcel As Microsoft.Office.Interop.Excel.Workbook = app.Workbooks.Open(excelFilePath, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis)


Dim wsheet As Microsoft.Office.Interop.Excel.Worksheet = singleExcel.Worksheets(1)

我把它拆成两句,不然有错误显红色
2014-09-17 15:30
听水吟
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-9-16
收藏
得分:0 
回复 3 楼 风吹过 b
try
......
      catch
......
end try

这个VB里好像有吧,网上有查到有这种用法,但我也不知道哪里有问题,这段程序中catch 和end try也出错
2014-09-17 15:33
听水吟
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-9-16
收藏
得分:0 
把这段程序放在VB里是这样的
Public Function ConvertExcelTOImage() As String  '将EXCEL转换成图片
 
        Dim excelFilePath As String
        excelFilePath = "E:\20140814EQ2008_Dll_VB\运行图甲.xls"
        
        Dim SaveExcelJPG As String
        SaveExcelJPG = "E:\20140814EQ2008_Dll_VB\1.jpg"
        
        Dim app As Microsoft.Office.Interop.Excel.Application
        app = New Microsoft.Office.Interop.Excel.Application
  
        app.CutCopyMode = False
        app.Visible = False
        
       (1)Dim objMis As Object=Type.Missing
        
        Dim singleExcel As Microsoft.Office.Interop.Excel.Workbook
        singleExcel = app.Workbooks.Open(excelFilePath, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis)
        
        Try
            Dim wsheet As Microsoft.Office.Interop.Excel.Worksheet
            wsheet = singleExcel.Worksheets(1)
            
            Dim ranobj As Object
            ranobj = DBNull.Value
            
            wsheet.Range("A1", "Z106").Copy (ranobj)
            
            Dim iData As IDataObject
            iData = Clipboard.GetDataObject()
            
            Dim bits As Bitmap
            bits = iData.GetData(DataFormats.Bitmap)
            
            Dim myBitmap As Bitmap
          (2)myBitmap=New Bitmap(bits.Width,bits.Height)
            
            Dim g As Graphics
            g = Graphics.FromImage(myBitmap)
            
            (3)g.DrawImage(bits,0,0)
            
            (4)myBitmap.Save(String.Format(SaveExcelJPG, Guid.NewGuid()))
            
            (5)Clipboard.Clear()
            
            (6)myBitmap.Dispose()
            
            (7)bits.Dispose()
            
            (8)Return ""
            
        (9)Catch ex As Exception
            ' KillProcess("EXCEL")
            (10)Return ex.Message
        Finally
           (11) Clipboard.Clear()
            ' KillProcess("EXCEL")
        (12)End Try
    End Function

前面两个的错误是缺少语句结束,(3)缺少=号,(4)缺少(号,(5)(6)(7)(11)缺少=号
(8)缺少结束语句,(9)(10)缺少语句结束,(12)缺少:if或select或sub或function或property或type或with或ENUM或语句结束

2014-09-17 15:48
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
'打开 EXCEL
'选择需要复制的部分,进行复制

'----------以上部分,你自己百度再加补代码吧-------------

'粘贴部分
If Clipboard.GetFormat(vbCFBitmap) Then                 '是图片
    Picture1.AutoSize = True                            '开自动大小
    Picture1.Picture = Clipboard.GetData(vbCFBitmap)    '粘贴
    SavePicture Picture1.Picture, "D:\1.bmp"            '保存
End If

授人于鱼,不如授人于渔
早已停用QQ了
2014-09-17 15:52
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
(1)Dim objMis As Object=Type.Missing
VB6 不允许 定义时 给值。
所以你必须分二行写。
Dim objMis As Object
set objmis = Type.Missing             '这是引用已用的对象
'如果是新建对应,那么 是 set objmis =new Type.Missing  

(2)myBitmap=New Bitmap(bits.Width,bits.Height)
对象赋值,使用 set 关键字。

(3)g.DrawImage(bits,0,0)
(4)myBitmap.Save(String.Format(SaveExcelJPG, Guid.NewGuid()))
(5)Clipboard.Clear()
(6)myBitmap.Dispose()
(7)bits.Dispose()
(11) Clipboard.Clear()
VB6 过程调用有二种格式:
标准: call g.DrawImage(bits,0,0)
省略: g.DrawImage bits,0,0

            (8)Return ""
            (10)Return ex.Message
VB6 中,该命令仅用于 错误捕捉返回中,在正常运行时遇到,报错。

        (9)Catch ex As Exception
未知。在VB6 中,后来带类型的 关键字,只有定义变量的 三个关键字。


        (12)End Try
你确定这一大堆代码是 VB6 的代码吗?
VB6 不支持 Try 关键字。

[ 本帖最后由 风吹过b 于 2014-9-17 16:02 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2014-09-17 15:59
燕之峰
Rank: 2
等 级:论坛游民
帖 子:146
专家分:63
注 册:2014-3-21
收藏
得分:7 
学习,学习。
2014-09-19 20:02
听水吟
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-9-16
收藏
得分:0 
回复 8 楼 风吹过 b
研究了很久,终于搞明白这段程序是,谢谢了!
2014-10-11 15:10
快速回复:如何将 EXCEL 文件转换成图片
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021242 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved