Resmi Excel'e Çevirme

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,239
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Bu program ile bir resmi Excel hücrelerine çevirebilirsiniz.







Kaynak Kod:


Kod:
[SIZE=2]Imports System.Threading

Public Class Form1

   Private bmp As Bitmap, th As Thread

   Private Sub BtnBrowse_Click(sender As Object, e As EventArgs) Handles BtnBrowse.Click
      Dim dlg As New OpenFileDialog With {
         .Filter = "Jpg|*.jpg;*.jpeg|Bmp|*.bmp|Gif|*.gif|Icon|*ico",
         .InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
      }

      Dim res As DialogResult = dlg.ShowDialog()

      If res = DialogResult.Cancel Then Exit Sub

      bmp = New Bitmap(dlg.FileName)

      Me.PictureBox1.Image = bmp

   End Sub

   Private Sub BtnAction_Click(sender As Object, e As EventArgs) Handles BtnAction.Click
     [COLOR=darkgreen] 'Asenkron ve en yüksek CPU önceliği (hız için) prosedur çağırma...[/COLOR]
      th = New Thread(AddressOf PicToXL) With {.Priority = ThreadPriority.Highest}
      th.Start()
   End Sub

   Private Sub BtnStop_Click(sender As Object, e As EventArgs) Handles BtnStop.Click
      th.Abort()
      ResetPrgBar()
   End Sub

   Private Sub ResetPrgBar()
      PrgBar.Value = 0
   End Sub
   Private Sub PicToXL()
      Dim xl = CreateObject("Excel.Application")
      Dim wb As Object = xl.WorkBooks.Add
      Dim sh As Object = wb.WorkSheets(1)

      xl.Windows(1).Zoom = 30
      sh.Cells.ColumnWidth = 0.27[COLOR=darkgreen] '0,1 cm[/COLOR]
      sh.Cells.RowHeight = 2.25[COLOR=darkgreen] '0,1 cm[/COLOR]

      xl.Visible = True
      xl.EnableEvents = False
      xl.Calculation = -4135 [COLOR=DarkGreen]'manuel[/COLOR]

      Dim pixColor As Color, i As Integer = 0

      PrgBar.Maximum = bmp.Width * bmp.Width

      For y As Integer = 0 To bmp.Height - 1

         For x = 0 To bmp.Width - 1

            pixColor = bmp.GetPixel(x, y)

            sh.Cells(y + 1, x + 1).Interior.Color = RGB(pixColor.R, pixColor.G, pixColor.B)

            i += 1

            PrgBar.Value = i

         Next

      Next

      PrgBar.Value = 0

      MsgBox("İşlem tamamlandı.", MsgBoxStyle.Information, "Zeki GÜRSOY")

   End Sub

End Class
[/SIZE]

 

Ekli dosyalar

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,108
Excel Vers. ve Dili
2007 Türkçe
Teşekkürler Zeki Bey,
Daha önce bmp uzantılı dosyaları excele aktaran bir makro kodu kullanmıştım. Bu ona göre çok daha işlevsel olmuş.
Ellerinize sağlık...
 
Katılım
10 Ekim 2013
Mesajlar
424
Excel Vers. ve Dili
Excel 2013 (64bit) - Türkçe
Altın Üyelik Bitiş Tarihi
26/05/2022
Mükemmel olmuş. Teşekkürler
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,521
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Teşekkürler

Sayın Zeki Gürsoy,


Emek ve paylaşımınız için teşekkürler.

Bayram hediyesi oldu. Sağ olun, var olun.

Sevgi ve saygılar.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,291
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Özel kişi
Üst