首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VB.NET 通过获取RGB值在Excel单元格填充绘图

VB.NET 通过获取RGB值在Excel单元格填充绘图

作者头像
一线编程
发布2019-07-22 14:36:30
1.3K0
发布2019-07-22 14:36:30
举报
文章被收录于专栏:办公魔盒办公魔盒

VB.NET 通过获取RGB值在Excel单元格填充绘图

Imports System.Drawing.Imaging

Imports System.Runtime.InteropServices

Imports Microsoft.Office.Interop

Public Class Form1

Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click

Dim path As String

ToolStripProgressBar1.Minimum = 0

ToolStripProgressBar1.Maximum = 1

ToolStripProgressBar1.Value = 0

OpenFileDialog1.ShowDialog()

path = OpenFileDialog1.FileName

pc.ImageLocation = path

ToolStripProgressBar1.Value = 1

If ToolStripProgressBar1.Value = ToolStripProgressBar1.Maximum Then ToolStripProgressBar1.ForeColor = Color.Red

ToolStripStatusLabel1.Text = "图片加载完成"

End Sub

Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click

Dim xlapp As New Excel.Application

Dim xlbook As Excel.Workbook

Dim xlsheet As Excel.Worksheet

On Error Resume Next

'-------------------------------------------------

ToolStripProgressBar1.Minimum = 0

ToolStripProgressBar1.Maximum = pc.Image.Width - 1

ToolStripProgressBar1.Value = 0

ToolStripProgressBar1.ForeColor = Color.Blue

ToolStripStatusLabel1.Text = "正在绘图请耐心等待.."

'------------------------------------------------

xlapp.Application.Workbooks.Add(True)

xlapp.Visible = True

xlbook = xlapp.ActiveWorkbook

xlsheet = xlbook.ActiveSheet

xlsheet.Cells.ColumnWidth = 0.8

xlsheet.Cells.RowHeight = 4

xlapp.ActiveWindow.Zoom = 10

Dim str As String = ""

Dim x, y As Integer

Dim arr(pc.Image.Height - 1, 0 To 2)

Dim betmap As New Bitmap(pc.Image)

For x = 0 To pc.Image.Width - 1

For y = 0 To pc.Image.Height - 1

Dim getcolor As Color = betmap.GetPixel(x, y)

'arr(y, x) = RGB(getcolor.R.ToString, getcolor.G.ToString, getcolor.B.ToString)

xlsheet.Cells(y + 1, x + 1).Interior.Color = RGB(getcolor.R.ToString, getcolor.G.ToString, getcolor.B.ToString)

Application.DoEvents()

ToolStripProgressBar1.Value = x

Next

Next

If ToolStripProgressBar1.Value = ToolStripProgressBar1.Maximum Then ToolStripProgressBar1.ForeColor = Color.Red

ToolStripStatusLabel1.Text = "绘图完成"

xlsheet = Nothing

xlbook = Nothing

xlsheet = Nothing

MsgBox("ok")

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ToolStripStatusLabel1.Text = "就绪"

ToolStripProgressBar1.Value = 0

Me.TopMost = True

Application.DoEvents()

End Sub

End Class


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档