2016-02-08 1 views
0

Я нашел много вопросов для противоположного vb.net, чтобы преуспеть, но не для получения изображения из excel cell(row,column) в поле для иллюстрации. Мое приложение - это шаблон, который получает строки текста из файла excel. Что работает отлично, но теперь я пытаюсь также передавать фотографии. Я пробовал picSpindle.Image = shXL.Cells(19, 2).Value, но ничего не делает. Не ошибается!Изображение из Excel в vb.net Picturebox

Скопирует и вставляет работу?

Код:

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 

ответ

1
shXL.Cells(19, 2).Value 

и так далее не будет работать, потому что фотографии не хранить в cells, но над ними смысл values из этих cells будет nothing

попробовать эти ссылки

1

2

3

+0

я решил просто оставить свои картинки в папку вместе с Excel файл с текстовыми строками. Я думал, что вы можете скопировать фотографии по ячейкам, потому что если вы записываете макрос в excel и делаете копию ячейки и вставляете его, это работает. Спасибо за информацию. – Duraholiday

0

Изображения не внутри клетки. Но координаты верхнего левого угла указывают на ячейку, причем этот код выше вы можете сделать свою собственную функцию, которая просматривает изображения.

Вы можете сделать так:

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 

 Смежные вопросы

  • Нет связанных вопросов^_^