注册 登录
编程论坛 VB6论坛

EXCELL 文档转换成图片,32 位图如何转换成 24 位图

听水吟 发布于 2014-10-11 15:17, 588 次点击
Public Function ConvertExcelTOImage() As String
        Dim excelFilePath As String = "E:\Picture\运行图甲.xls"
        Dim SaveExcelJPG As String = "E:\Picture\111.bmp"
        Dim app As Microsoft.Office.Interop.Excel.Application = 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 = 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 = singleExcel.Worksheets(1)
            Dim ranobj As Object = DBNull.Value
            wsheet.Range("B2", "G3").Copy(ranobj)
            Dim iData As IDataObject = Clipboard.GetDataObject()
            Dim bits As Bitmap = iData.GetData(DataFormats.Bitmap)
            Dim myBitmap As Bitmap = New Bitmap(bits.Width, bits.Height)
            Dim g As Graphics = Graphics.FromImage(myBitmap)
            g.DrawImage(bits, -1, -1)
            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
上述程序是,将EXCELL文件转换成32位图图片,如何能让转换的图片是24位的呢?
3 回复
#2
听水吟2014-10-11 15:45
或者有人可以帮我分析一下每个语句的意思吗?
#3
风吹过b2014-10-11 17:18
是前面是准备工作。定义对象,打开文件。
            wsheet.Range("B2", "G3").Copy(ranobj)       放剪切板
            g.DrawImage(bits, -1, -1)                   不懂
            myBitmap.Save(String.Format(SaveExcelJPG, Guid.NewGuid()))          保存
后面是一些清理工作

我现在还没搞懂 BMP 里32位图与 24位图的分别。
24位BMP,是直接上的 RGB 了,也就是 没有调色板了。
那 32位的BMP,每个像素 除掉每色对应的 8位外,还剩下 8位是什么?? 我不知道。

VB6里,是24位BMP。
我前面写了一个 这种程序的代码段,好像是你吗?
提供的示例在VB6里运行是 一大堆错误的
#4
听水吟2014-10-13 09:12
回复 3 楼 风吹过 b
那个帖子也是我发的
1