vb.net 教程 10-2 Excel操作5 单元格的高、宽和颜色

本文介绍使用VB.NET将图像转换为Excel表格的详细过程,包括界面设计与具体代码实现,如调整列宽、行高及单元格颜色,以及如何读取图像像素并将其应用于Excel单元格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

调整某一列的宽度:Worksheet.Columns(要调整的列数).ColumnWidth
调整某一行的高度:Worksheet.Rows(要调整的行数).rowHeight
调整单元格的颜色:Worksheet.Cells(行号,列号).Interior.Color

这里有个具体的示例,以前发过的《Excel做图像》,这里把具体代码列出来:

设计界面:

载入按下:

    Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click
        Dim filename As String
        If ofdImg.ShowDialog = DialogResult.OK Then
            filename = ofdImg.FileName
        Else
            Exit Sub
        End If
        pbShow.Image = Image.FromFile(filename)
    End Sub

输出按下:

    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
        Dim timestart, timeend As DateTime
        timestart = Now()

        Dim pImageWidth, pImageHeight As Integer
        pImageWidth = 300
        pImageHeight = 200

        Dim pImage As New Bitmap(pImageWidth, pImageHeight)
        Dim g As Graphics = Graphics.FromImage(pImage)
        g.DrawImage(pbShow.Image, New Rectangle(0, 0, pImageWidth, pImageHeight))
        g.Dispose()

        Dim xls As New Excel.Application
        Dim Wbook As Excel.Workbook
        Wbook = xls.Workbooks.Add()

        Dim Wsheet As Excel.Worksheet
        Wsheet = Wbook.Worksheets.Add()
        Wsheet.Name = "图画"

        Dim picW, picH As Integer
        picW = pImage.Width
        picH = pImage.Height

        For i As Integer = 1 To picW
            Wsheet.Columns(i).ColumnWidth = 0.2
        Next

        For j As Integer = 1 To picH
            Wsheet.Rows(j).rowHeight = 2
        Next

        Dim picColor As Color

        For k As Integer = 0 To picW - 1
            For l As Integer = 0 To picH - 1
                picColor = pImage.GetPixel(k, l)
                Wsheet.Cells(l + 1, k + 1).Interior.Color = RGB(picColor.R, picColor.G, picColor.B)
            Next
        Next

        Wbook.SaveAs("d:\aa.xls")
        xls.Quit()

        timeend = Now()
        MessageBox.Show("转换完毕。" & ControlChars.CrLf & "图片大小:" & pImage.Width & "*" & pImage.Height & ControlChars.CrLf & "转换耗时:" & (timeend - timestart).TotalSeconds)
    End Sub

最后的效果:

就是需要的时间太长了:

不知道可以用来做十字绣的底稿不。。。呵呵呵呵

 

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看vb.net 教程 目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Net学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值