首页 > 解决方案 > WINDOWS 表格中的表格填充

问题描述

我已经完成了 windows 窗体的设计::

在此处输入图像描述

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox2.Visible = False
        Label2.Visible = False
        ComboBox3.Visible = False
        Label3.Visible = False
        ComboBox4.Visible = False
        Label4.Visible = False
        ComboBox5.Visible = False
        Label5.Visible = False
        DateTimePicker1.Visible = False
End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged

        If (ComboBox1.Text = "BY-ELECTION") Then
            ComboBox2.Visible = True
            Label2.Visible = True
            DateTimePicker1.Visible = False
        ElseIf (ComboBox1.Text = "GENERAL ELECTION") Then
            ComboBox2.Visible = False
            Label2.Visible = False
            ComboBox3.Visible = False
            Label3.Visible = False
            ComboBox4.Visible = False
            Label4.Visible = False
            ComboBox5.Visible = False
            Label5.Visible = False
            DateTimePicker1.Visible = True
        End If

    End Sub

Private Sub ComboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox4.SelectedIndexChanged

        If ComboBox4.SelectedValue = "" And ComboBox2.Text = "MP" Then
            DateTimePicker1.Visible = True
        End If

        If (ComboBox4.Text = "MVITA") And ComboBox2.Text = "MCA" Then
            Label5.Visible = True
            ComboBox5.Visible = True
            ComboBox5.Items.Clear()
            ComboBox5.Items.Add("MAJENGO")
            ComboBox5.Items.Add("MAKADARA")
            ComboBox5.Items.Add("SHIMANZI")
            ComboBox5.Items.Add("TONONOKA")
            ComboBox5.Items.Add("TUDOR")
            DateTimePicker1.Visible = False
        End If

    End Sub

Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged
       
If (ComboBox3.Text = "MOMBASA") And ComboBox2.Text = "MP" Or (ComboBox3.Text = "MOMBASA") And ComboBox2.Text = "MCA" Then
            Label4.Visible = True
            ComboBox4.Visible = True
            ComboBox4.Items.Clear()
            ComboBox4.Items.Add("CHANGAMWE")
            ComboBox4.Items.Add("JOMVU")
            ComboBox4.Items.Add("KISAUNI")
            ComboBox4.Items.Add("LIKONI")
            ComboBox4.Items.Add("MVITA")
            ComboBox4.Items.Add("NYALI")
End If
        
End Sub

Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
        
If ComboBox2.Text = "GOVERNORSHIP" Or ComboBox2.Text = "SENATOR" Then
            Label3.Visible = True
            ComboBox3.Visible = True
            Label5.Visible = False
            ComboBox5.Visible = False
            DateTimePicker1.Visible = True
            ComboBox4.Visible = False
            Label4.Visible = False
ElseIf ComboBox2.Text = "MP" Or ComboBox2.Text = "MCA" Then
            Label3.Visible = True
            ComboBox3.Visible = True
            DateTimePicker1.Visible = False
            Label6.Visible = False
            ComboBox4.Visible = False
            Label4.Visible = False
            ComboBox5.Visible = False
            Label5.Visible = False
End If

End Sub

Private Sub ComboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox5.SelectedIndexChanged
        Label6.Visible = True
        DateTimePicker1.Visible = True
End Sub

我被困在命令按钮上。

我的 windows 窗体有 5 个组合框,其中分配了项目,但在此插图中,我将使用一个项目,例如:

如果我在 combobox2 中选择项目 MCA 并单击按钮 GENERATE a table,我想要:

在此处输入图像描述

将创建并保存在路径中C:\Users\Administrator\Documents\,并以以下格式填充

标签: vb.netwinforms

解决方案


可以参考以下代码生成DataTable。

    Dim dt As DataTable = New DataTable
    dt.Columns.Add("COUNTY")
    dt.Columns.Add("CONSTITUENCY")
    dt.Columns.Add("WARD")
    dt.Rows.Add(ComboBox3.SelectedItem.ToString, ComboBox4.SelectedItem.ToString, ComboBox5.SelectedItem.ToString)

然后使用以下代码将数据表导出到 Excel:

    Dim excelFilePath As String = "excel path"
    Dim excelApp = New Excel.Application()
    excelApp.Workbooks.Add()
    Dim workSheet As Excel._Worksheet = excelApp.ActiveSheet

    For i = 0 To dt.Columns.Count - 1
        workSheet.Cells(1, i + 1) = dt.Columns(i).ColumnName
    Next
    For i = 0 To dt.Rows.Count - 1

        For j = 0 To dt.Columns.Count - 1
            workSheet.Cells(i + 2, j + 1) = dt.Rows(i)(j)
        Next
    Next

    If Not String.IsNullOrEmpty(excelFilePath) Then
        Try
            workSheet.SaveAs(excelFilePath)
            excelApp.Quit()
            MessageBox.Show("Excel file saved!")
        Catch ex As Exception
            Throw New Exception("ExportToExcel: Excel file could not be saved! Check filepath." & vbLf & ex.Message)
        End Try
    End If

测试结果如下:

在此处输入图像描述


推荐阅读