专栏首页VB小源码VB.NET 通过获取RGB值在Excel单元格填充绘图

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

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


本文分享自微信公众号 - VB小源码(vb_xym)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java 并发编程面试必备的知识点!

    相信不用我说,大家也都知道掌握并发编程对于一个 Java 程序员的重要性。但相对于其他 Java 基础知识点来说,并发编程更加抽象,涉及到的知识点很多很零散,实...

    Java技术栈
  • IOS UIResponder 触屏

    class ViewController:UIViewController { override func viewDidLoad() { super.vi...

    用户5760343
  • IOS UITableView UITableViewCell控件

    import UIKit class ViewController:UIViewController,UITableViewDataSource { ove...

    用户5760343
  • 为什么 C 语言仍然占据统治地位?

    没有什么技术可以应用长达50年之久,除非它真的比大多数其他东西都要好用——对于一种计算机行业的技术来说尤其如此。自1972年诞生以来,C语言一直保持生龙活虎的状...

    Python猫
  • IOS UITextField 事件列表

    用户5760343
  • 编程语言之问:何时该借用,何时该创造?

    6 月 22 日,Python 之父 Guido 发了一条推特,说了 Python 的一则历史故事,他说 elif 是从 C 语言中偷过来的:

    Python猫
  • 推荐几个牛逼的 IDEA 插件,还带动图!

    一款热部署插件,只要不是修改了项目的配置文件,用它都可以实现热部署。收费的,破解比较麻烦。不过功能确实很强大。算是开发必备神器了。热部署快捷键是control+...

    Java技术栈
  • IOS UIRefreshControl刷新控件

    import UIKit class ViewController:UIViewController,UITableViewDelegate,UITableV...

    用户5760343
  • 美团技术四面经历,作者已拿到Offer!

    blog.csdn.net/csuliyajin2012/article/details/49430659

    Java技术栈
  • Python,数据结构,神经网络-面经

    然后,tanh函数将数值挤压到【-1,1】,解决了sigmoid不是以零为中心的问题,但仍然存在饱和问题。

    Datawhale

扫码关注云+社区

领取腾讯云代金券