簡體   English   中英

從Excel到vb.net圖片框的圖像

[英]Image from Excel to vb.net Picturebox

我已經找到了許多問題,這些問題使對面的vb.net變得更出色,但是沒有一個問題使從Excel cell(row,column)獲得的圖片進入圖片框。 我的應用程序是一個模板,可從excel文件獲取文本字符串。 效果很好,但現在我也嘗試傳輸圖片。 我已經嘗試過picSpindle.Image = shXL.Cells(19, 2).Value但什么也沒做。 不會出錯!

復制和粘貼有效嗎?

碼:

Imports System
Imports System.IO
Imports System.Text
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
    Dim appXL As Excel.Application
    Dim wbXl As Excel.Workbook
    Dim shXL As Excel.Worksheet
    Dim raXL As Excel.Range
    Dim PartID As String
    Dim RefCard As String

    Private Sub Form1_Activated(sender As System.Object, e As System.EventArgs) Handles MyBase.Activated
        'Dispaly Brembo Logo
        picLogo.SizeMode = PictureBoxSizeMode.StretchImage


    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Read File Source with part number ******************Example From TXT
        PartID = ("19.N111.10")

        ' Start Excel and get Application object.
        appXL = CreateObject("Excel.Application")
        appXL.Visible = False

        'Open Reference Card*************************************************************************************

        wbXl = appXL.Workbooks.Open("C:\Users\aholiday\Desktop\Visual Studios Projects\Reference Card App\" & PartID & ".xlsx")
        shXL = wbXl.Worksheets("Sheet1")

        ' Copys Reference Card Text from Cells To App labels
        lblCODE.Text = shXL.Cells(3, 9).Value
        Debug.Print(lblCODE.Text)
        lblREV.Text = shXL.Cells(3, 13).Value
        lblDate.Text = shXL.Cells(5, 9).Value
        lblCustomer.Text = shXL.Cells(8, 2).Value
        lblPart.Text = shXL.Cells(11, 2).Value
        lblSpindleType.Text = shXL.Cells(15, 2).Value
        lblPaintType.Text = shXL.Cells(7, 6).Value
        lblDunnageType.Text = shXL.Cells(8, 8).Value
        lblPartsLayer.Text = shXL.Cells(11, 11).Value
        lblLayers.Text = shXL.Cells(15, 11).Value
        lblTotalParts.Text = shXL.Cells(20, 11).Value
        lblPackagingInstructs.Text = shXL.Cells(20, 11).Value
     'Works up to here!

        ' Copys Reference Card Pictures from Cells To App Pictureboxs
        picSpindle.Image = shXL.Cells(19, 2).Value
        picRotorTop.Image = shXL.Cells(10, 6).Value
        picRotorBottom.Image = shXL.Cells(19, 6).Value
        picDunnageFinal.Image = shXL.Cells(10, 8).Value
        picDunnageLayer.Image = shXL.Cells(19, 8).Value


        ' Close objects
        raXL = Nothing
        shXL = Nothing
        wbXl = Nothing
        appXL.Quit()
        appXL = Nothing
    End Sub

End Class
shXL.Cells(19, 2).Value

等等將不起作用,因為圖片未存儲在cells但在它們上方意味着這些cells valuesnothing

試試這些鏈接

1個

2

3

圖像不在單元格內。 但是左上角的坐標指向一個單元格,使用上面的代碼,您可以創建自己的搜索圖像的函數。

您可以這樣做:

    shXL = wbXl.Worksheets("Sheet1")

    ' # Loop for all Shapes 
    ' But I don't know what other controls over 
    '    the images are considered "shapes",
    '    Perhaps the best way is to verify that 
    '    in the "clipboard" there is truly a picture
    For i = 0 To shXL.Shapes.Count - 1

        'THIS IS THE MAIN POINT

        ' # get the pictures and copy to clipboard
        'shXL.Shapes.Item(i).Copy()

        ' # paste the picture in the pictureBox from clipboard
        'PictureBox1.Image = Clipboard.GetImage

        'AND OTHER PROPERTIS

        MsgBox(shXL.Shapes.Item(i).Name) ' the name in excel
        MsgBox(shXL.Shapes.Item(i).AlternativeText) 'the name of the file
        MsgBox(shXL.Shapes.Item(i).TopLeftCell.Column) 'the column position (of the top left corner)
        MsgBox(shXL.Shapes.Item(i).TopLeftCell.Row) 'the row position (of the top left corner)
        MsgBox(shXL.Shapes.Item(i).Width) 'the with in px
        MsgBox(shXL.Shapes.Item(i).Height) 'the height in px
        MsgBox(shXL.Shapes.Item(i).Top) 'the top in px
        MsgBox(shXL.Shapes.Item(i).Left) 'the left in px
    Next

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM