MIMIFUT 2023-02-25 09:59 采纳率: 66.7%
浏览 34
已结题

vb.net中如何获取到excel单元格的颜色

vb.net中如何获取到excel单元格的颜色
目前查了很多文章,给单元格设置颜色的很多,但获取颜色值的没查到

下面是我写的代码
但发现获取到的值都是 16777215
不知道该如何正确获取

img

    Function ReadExcel(ByVal FileName As String)
        Dim txt As String
        Dim style1 As Excel.Style
        Dim style2 As Excel.Style
        AppXls = New Microsoft.Office.Interop.Excel.Application
        AppXls.Workbooks.Open(FileName)
        AppXls.Visible = False
        AppWokBook = AppXls.Workbooks(1)
        AppSheet = AppWokBook.Sheets(1)

        style1 = AppSheet.Cells(2, 1).style
        style2 = AppSheet.Cells(2, 2).style
        Label2.Text = style1.Interior.Color
        Label3.Text = style2.Interior.Color
        mydataset = txt
        AppXls.Quit()
        AppWokBook = Nothing
        AppSheet = Nothing
        AppXls = Nothing
        Return mydataset

    End Function

  • 写回答

4条回答 默认 最新

  • CSDN专家-showbo 2023-02-25 13:24
    关注

    获取Range.Interior.Color,不是Ceil.Style.Interior.Color

    示例代码来源:https://www.w3dev.cn/article/20230121/CSharp-Vb.net-Get-Excel-Cell-BackgroudColor-Demo.aspx

    Imports System.Linq
    Imports System.Collections.Generic
    Imports Microsoft.VisualBasic
    Imports System.Data.OleDb
    Module Module1
        Function RGB(color)
            r = &HFF And color
            g = &HFF00 And color
            g >>= 8
            b = &HFF0000 And color
            b >>= 16
    
            Return $"RGB({r}, {g}, {b})"
        End Function
        Sub Main()
            AppXls = New Microsoft.Office.Interop.Excel.Application
            AppXls.Workbooks.Open("E:\Demos\CSharp\ConsoleApp\Demo\d.xlsx")
            AppXls.Visible = False
            AppWokBook = AppXls.Workbooks(1)
            AppSheet = AppWokBook.Sheets(1)
    
            range = AppSheet.Range(AppSheet.Cells(1, 1), AppSheet.Cells(1, 1))
            color = range.Interior.Color.ToString()
            Console.WriteLine($"{color}==>{RGB(Integer.Parse(color))}") 'range = AppSheet.Range(AppSheet.Cells(2, 1), AppSheet.Cells(2, 1))
            color = range.Interior.Color.ToString()
            Console.WriteLine($"{color}==>{RGB(Integer.Parse(color))}") '绿
    
    
    
            range = AppSheet.Range(AppSheet.Cells(3, 1), AppSheet.Cells(3, 1))
            color = range.Interior.Color.ToString()
            Console.WriteLine($"{color}==>{RGB(Integer.Parse(color))}") 'AppXls.Quit()
    
            Console.ReadKey()
    
        End Sub
    
    End Module
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 创建了问题 2月25日

悬赏问题

  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并