修改excel单元格式

116 阅读1分钟

前置引入

Imports System.Data.SqlClient
Imports System.Drawing.Drawing2D
Imports System.IO
Imports System.Text
Imports System.Xml
Imports HeianSeisaku.SystemConst
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
Imports DataTable = System.Data.DataTable
Imports TextBox = System.Windows.Forms.TextBox

所需参数
Private Sub WriteData(ByRef worksheet As Worksheet, ByRef range As Range, nichiji As String, dt As DataTable)
  1. 设置背景颜色 Interior.Color
    ' 1.获取单元格对象
    Dim cell As Range = worksheet.Range($"G{7 + index}")
    ' 2.设置单元格对象背景颜色 此处使用rgb颜色,实际上使用Color.LightCoral 中 Color对象也是可以的
    cell.Interior.Color = RGB(240, 128, 128)
  1. 设置字体颜色 Font.Color
    ' 1.获取单元格对象
    Dim cell As Range = worksheet.Range($"G{7 + index}")
    ' 2.设置单元格对象字体颜色 此处使用rgb颜色,实际上使用Color.LightCoral 中 Color对象也是可以的
    cell.Font.Color = RGB(0, 0, 0)
  1. 设置为数字
    ' 1.获取单元格对象
     Dim txtRowRange1 As Excel.Range = range.Resize(rowCount, 1).Offset(0, offset)
     ' 2.设置单元格数据格式为数字
     ' 数据格式为带分隔符数字
     txtRowRange1.NumberFormat = "#,##0"
     ' 数据格式为无分隔符数字
     txtRowRange1.NumberFormatLocal = "0_);(0)"
     ' 数据格式保留两位小数 1,111,111.00 
     Selection.NumberFormatLocal = "#,##0.00_);(#,##0.00)"
  1. 设置为文本 NumberFormat = "@"
        ' 1.获取单元格对象
        Dim txtRowRange1 As Excel.Range = range.Resize(rowCount, 1).Offset(0, offset)
        ' 2.设置单元格数据格式为文本 值为 "@"
        txtRowRange1.NumberFormat = "@"
  1. 设置为时间
        ' 1.获取单元格对象 设置值,
        worksheet.Range("I2").Value = nichiji
        ' 2.设置单元格数据格式为时间
        ' 2.1 西历
        worksheet.Range("I2").NumberFormatLocal = "yyyy/m/d"
        worksheet.Range("I2").NumberFormatLocal = "yyyy/mm/dd"
        worksheet.Range("I2").NumberFormatLocal = "yyyy""年""m""月""d""日"";@"
        ' 2.2 和历  昭和/平成/令和等等
        worksheet.Range("I2").NumberFormatLocal = "[$-ja-JP]ggge""年""m""月""d""日"";@"

11.单元格内部值的对齐方法 HorizontalAlignment

     ' 0.获取单元格对象
     Dim timeRowRange As Excel.Range = range.Resize(rowCount, 1).Offset(0, offset)

    ' 1.左对齐
    timeRowRange.HorizontalAlignment = XlHAlign.xlHAlignLeft
    ' 2.右对齐
    timeRowRange.HorizontalAlignment = XlHAlign.xlHAlignRight
    ' 3.居中
    timeRowRange.HorizontalAlignment = XlHAlign.xlHAlignCenter
  1. 金额
     ' 0.获取单元格对象
     Dim kinRowRange As Excel.Range = range.Resize(rowCount, 1).Offset(0, offset)
     ' 2.设置单元格数据格式为金额 
     ' 人民币/日元 ¥1,111,111.00 
     kinRowRange.NumberFormatLocal = "¥\#,##0.00_);(\#,##0.00)" 
     ' 美元 $1,111,111.00 
     kinRowRange.NumberFormatLocal = "$\#,##0.00_);(\#,##0.00)" 
     ' 保留两位小数1,111,111.00 
     Selection.NumberFormatLocal = "#,##0.00_);(#,##0.00)"
  1. dkd
  2. kak