使用winform的下拉框绑定到excel的列,下拉框显示每一列的第一行,不用连数据库
读取Excel可以用Free Spire.XLS,中文教程很多
NuGet安装Free Spire.XLS,添加命名空间:
using Spire.Xls;
using System;
然后使用下面代码获取第一行的所有数据:
//加载Excel
Workbook workbook = new Workbook();
workbook.LoadFromFile("sample.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//获取最大列数
int maxcolumn = sheet.LastColumn;
for (int col = 1; col <= maxcolumn; col++)
{
//获取第一行的所有数据
string text = sheet.Range[1, col].Value;
}
using System;
using System.Collections.Generic;
using System.Threading;
using System.Windows.Forms;
using System.Drawing;
using System.IO;
using System.Linq;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//注意修改下面路径为存储Excel的目录,如果和exe在同一个目录下用 Path.Combine(Application.StartupPath, "excelfolder");
var data = Directory.GetFiles(@"D:\文件\C#\windowform\WindowsFormsApp1\bin\Debug").Select(i => new { value = i, text = Path.GetFileName(i) }).ToList();
comboBox1.DisplayMember = "text";
comboBox1.ValueMember = "value";
comboBox1.DataSource = data;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var filePath = comboBox1.SelectedValue.ToString();
MessageBox.Show(filePath);//这里改为读取filePath指定的Excel填充数据的代码
}
}
}
大佬好像不太好使啊
等于是第一行是列头,下拉框显示列头的名字?
嗯
@酒叟: 那你想办法读出excel的数据呗?是不会读数据还是不会绑定?
@顾晓北: 之前一直用的数据库绑定直接绑定excel我是两个都不会啊
@顾晓北: 大佬可以给个damo吗,我研究一下
@酒叟: 没时间写。。。
@顾晓北: 好吧麻烦了
读excel可以使用nopi库,nuget上有,使用很简单。
至于将下拉框列表项绑定为excel的标题,在直接读取excel后,取值添加就行了。
在不连接数据库的情况下,如果数据项不需要经常维护,建议写死。例如,性别:男/女 这种下拉框。