vb.net - 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
- Combobox3(标记为 COUNTY)有项目 MOMBASA
- Combobox4(标记为 CONSTITUENCY)有项目 MVITA
- Combobox5(标记为 WARD)有项目 SHIMANZI
如果我在 combobox2 中选择项目 MCA 并单击按钮 GENERATE a table,我想要:
将创建并保存在路径中C:\Users\Administrator\Documents\
,并以以下格式填充
- 单元格 A2 = 在组合框 3 中选择的项目
- 单元格 B2 = 在组合框 4 中选择的项目
- 单元格 C2 = 在组合框 5 中选择的项目
- 单元格 H2 将根据性别(男性/女性)和字母(仅限 ABCD)以该顺序填充随机输入。即单元格 H2= MALE,D
解决方案
可以参考以下代码生成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
测试结果如下:
推荐阅读
- swagger-ui - 混合内容错误 - 通过 HTTPS 提供服务时,swagger-ui 应该更喜欢 HTTPS API 协议
- python - 训练 gensim word2vec 模型后单词不在词汇表中,为什么?
- caching - 是否有一种 grails 方法来缓存 grails 域对象超时
- java - 如何使用代码启用键盘导航?
- ruby-on-rails - 如何在rails中使字段默认
- html - 防止 HTML 表格溢出包含的 div
- json - Postgres 广告嵌套 json
- regex - 打字稿检查电子邮件是否有效
- node.js - Visual Studio Node.js Express 4 应用程序服务器退出
- kubernetes - kubernetes 有自己的负载均衡器吗?