在vb.net中使用彩色单元格将DataGridView转换为Excel
我看了很多例子和演示,但我看不懂 我正在尝试使用背景色将datagridview转换为excel。 我只能将datagridview转换为excel,但没有背景色。我想用背景色导出excel。 这是我的密码在vb.net中使用彩色单元格将DataGridView转换为Excel,vb.net,Vb.net,我看了很多例子和演示,但我看不懂 我正在尝试使用背景色将datagridview转换为excel。 我只能将datagridview转换为excel,但没有背景色。我想用背景色导出excel。 这是我的密码 Imports System.Data.SqlClient Imports System.Data.OleDb Imports Excel = Microsoft.Office.Interop.Excel Public Class view_all Dim con1 As SqlC
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports Excel = Microsoft.Office.Interop.Excel
Public Class view_all
Dim con1 As SqlConnection 'cun concation
Dim con As String ' string coonction
Dim da As SqlDataAdapter
Dim ds As DataSet
Dim tables As DataTableCollection
Dim source1 As New BindingSource
Dim APP As New Excel.Application
Dim worksheet As Excel.Worksheet
Dim workbook As Excel.Workbook
Dim view As DataView
Private Sub view_all_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim obj As New config
con1 = New SqlConnection
con1 = obj.getcontion()
con1.Open()
MessageBox.Show("Open Stock Limit ", "Open", MessageBoxButtons.OK, MessageBoxIcon.Information)
da = New SqlDataAdapter("select * from item", con1)
ds = New DataSet
da.Fill(ds, "item")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "item"
tables = ds.Tables
view = New DataView(tables(0))
source1.DataSource = view
DataGridView1.DataSource = view
DataGridView1.AllowUserToAddRows = False
DataGridView1.Columns(0).HeaderText = "Item Id"
DataGridView1.Columns(1).HeaderText = "Item Name"
DataGridView1.Columns(2).HeaderText = "Item Number"
DataGridView1.Columns(3).HeaderText = "GRN Number"
DataGridView1.Columns(4).HeaderText = "Item Qty "
DataGridView1.Columns(5).HeaderText = "Item Max"
DataGridView1.Columns(6).HeaderText = "Item min"
End Sub
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
For i As Integer = 0 To Me.DataGridView1.Rows.Count - 1
Dim A As Integer = Me.DataGridView1.Rows(i).Cells(4).Value
Dim c As String = Me.DataGridView1.Rows(i).Cells(6).Value
Dim aa As Double ' string double herawanawa
Dim cc As Double ' string double harawabanwa
aa = CDbl(Val(A))
cc = CDbl(Val(c))
If aa < cc Then
Me.DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Red
Else
Me.DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Yellow
End If
Next
End Sub
'***************** export excel *****************************
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
If TextBox1.Text = "" Then
MsgBox("Enter file name")
Return
End If
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Int16, j As Int16
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
For x = 0 To DataGridView1.ColumnCount - 1
xlWorkSheet.Cells(0 + 1, x + 1) = _
DataGridView1.Columns(x).HeaderText
Next
For i = 0 To DataGridView1.RowCount - 1
For j = 0 To DataGridView1.ColumnCount - 1
xlWorkSheet.Cells(i + 2, j + 1) = _
DataGridView1(j, i).Value.ToString()
Next
Next
Dim path As String
path = "C:\vb\" + TextBox1.Text.Trim + ".xls"
If (path = TextBox1.Text) Then
MsgBox(" no ")
Return
End If
xlWorkBook.SaveAs(path, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, _
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
xlWorkBook.Close(True, misValue, misValue)
xlApp.Quit()
'MsgBox("misValue")
MsgBox(path)
releaseObject(xlWorkSheet)
releaseObject(xlWorkBook)
releaseObject(xlApp)
MessageBox.Show("File completed to save in your path")
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
MessageBox.Show("Exception Occured while releasing object " + ex.ToString())
Finally
GC.Collect()
End Try
End Sub
End Class
导入System.Data.SqlClient
导入System.Data.OleDb
导入Excel=Microsoft.Office.Interop.Excel
公共类视图
尺寸con1为SqlConnection“C”连接
作为字符串的字符串协调的尺寸con
Dim da作为SqlDataAdapter
Dim ds作为数据集
将表设置为DataTableCollection
Dim source1作为新的BindingSource
Dim应用程序作为新的Excel.Application
将工作表设置为Excel。工作表
将工作簿设置为Excel.工作簿
作为数据视图的Dim视图
私有子视图_all_Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
Dim obj作为新配置
con1=新的SqlConnection
con1=obj.getcontion()
con1.Open()
MessageBox.Show(“未清库存限额”,“未清”,MessageBoxButtons.OK,MessageBoxIcon.Information)
da=新的SqlDataAdapter(“从项中选择*,con1)
ds=新数据集
da.填写(ds,“项目”)
DataGridView1.DataSource=ds
DataGridView1.DataMember=“项”
tables=ds.tables
视图=新数据视图(表(0))
source1.DataSource=view
DataGridView1.DataSource=view
DataGridView1.AllowUserToAddress=False
DataGridView1.Columns(0).HeaderText=“项目Id”
DataGridView1.Columns(1).HeaderText=“项目名称”
DataGridView1.Columns(2).HeaderText=“项目编号”
DataGridView1.Columns(3).HeaderText=“GRN编号”
DataGridView1.列(4).HeaderText=“项目数量”
DataGridView1.Columns(5).HeaderText=“Item Max”
DataGridView1.Columns(6).HeaderText=“项目最小值”
端接头
私有子DataGridView1u CellFormatting(ByVal sender作为对象,ByVal e作为System.Windows.Forms.DataGridViewCellFormattingEventArgs)处理DataGridView1.CellFormatting
对于i As Integer=0到Me.DataGridView1.Rows.Count-1
Dim A As Integer=Me.DataGridView1.Rows(i).Cells(4).Value
Dim c As String=Me.DataGridView1.Rows(i).Cells(6).Value
Dim aa为双“字符串双herawanawa
尺寸cc为“双”字串双原wabanwa
aa=CDbl(Val(A))
cc=CDbl(Val(c))
如果aa
你需要一些类似于
Dim formatRange As Excel.Range
formatRange = worksheet.Range("A1", "A3")
formatRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
只需更改括号中的范围以匹配您的范围(如果需要,您还可以重复第二行和第三行以覆盖所有不同的范围和颜色)
希望这有助于找到更多格式选项。使用excel文件模板更容易。创建excel模板。根据其他单元格的值设置背景的条件格式。导出时,将模板复制到临时文件夹,打开它,添加数据,然后将其保存到用户I want col提供的文件夹和文件名中或者动态更改。我已经添加了条件更改颜色。在datagridview works中是。可以,但导出excel后,行颜色没有更改show@Duminda对不起,我不太明白你的意思。David先生..datagridview行颜色动态更改。a我想动态导出更改行颜色导出excel