将excel中的数据导入到DataGridView

c#中使用winform控件将excel中的数据导入到DataGridView

  private void button8_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            //openFileDialog1.Filter = "Excel 文件(*.xls)|*.xls|Excel 文件(*.xlsx)|*.xlsx|所有文件(*.*)|*.*";
            openFileDialog1.Filter = "Excel 文件(*.xlsx)|*.xlsx|Excel 文件(*.xls)|*.xls|所有文件(*.*)|*.*";
            try
            {
                if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    string _filePath = openFileDialog1.FileName;
                    if (_filePath != "")
                    {
                        using (FileStream fs = new FileStream(_filePath, FileMode.Open, FileAccess.Read))
                        {
                            string select = "SELECT * FROM Student_Info";
                            String FileDir = Environment.CurrentDirectory;
                            DataTable dt = SqlHelper.Query(select).Tables[0];



                            Workbook wk = new Workbook();//工作簿
                            wk.Open(fs);  //打开excel文档
                            Worksheet worksheet = wk.Worksheets[0];//工作表
                            Cells cells = worksheet.Cells;//获取worksheet所有单元格
                            //判断excel导入格式
                            if (!cells[0, 0].StringValue.Contains("studentID"))
                            {
                                MessageBox.Show("导入的文档格式不对,请选择正确格式的文档导入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                            //循环遍历所有单元格信息
                            for (int i = 1; i < cells.Rows.Count; i++)
                            {
                                if (string.IsNullOrEmpty(cells[i, 0].StringValue.Trim()))
                                {
                                    break;
                                }
                                DataRow dr = dt.NewRow();
                                dr["studentID"] = cells[1, 0].StringValue.Trim();
                                dr["studentName"] = cells[1, 1].StringValue.Trim();
                                dr["studentSex"] = cells[1, 2].StringValue.Trim();
                                dr["studentAge"] = cells[1, 3].StringValue.Trim();
                                dr["studentClass"] = cells[1, 4].StringValue.Trim();
                                //dr["列名1"] = cells[i, 0].StringValue.Trim();
                                //dr["列名2"] = cells[i, 1].StringValue.Trim();
                                //dr["列名3"] = cells[i, 2].StringValue.Trim();
                                //dr["列名4"] = cells[i, 3].StringValue.Trim();

                                dt.Rows.Add(dr);
                                System.Windows.Forms.Application.DoEvents();//实时更新表格

                            }

                            //gridControl1.DataSource = dt;
                            //gridView1.BestFitColumns();

                            dataGridView1.DataSource = dt;

                            int result = SqlHelper.Execute($"INSERT INTO Student_Info VALUES({cells[1, 0].StringValue.Trim()},'{cells[1, 1].StringValue.Trim()}','{cells[1, 2].StringValue.Trim()}','{cells[1, 3].StringValue.Trim()}','{cells[1, 4].StringValue.Trim()}')");
                            if (result > 0)
                            {
                                MessageBox.Show("新增成功");
                            }
                            else
                            {
                                MessageBox.Show("新增失败");
                            }
                            //gridView1.BestFitColumns();
                            //worksheet.Cells.;//列宽自适应
                            MessageBox.Show( "资料导入成功", "提示", MessageBoxButtons.OK);//提示保存成功
                        }
                        

                    }
                    //InitStudent();
                }
                
            }
             
            catch (Exception es)
            {
                MessageBox.Show(es.ToString());
            }

        }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你需要使用以下步骤: 1. 首先,在你的C#项目添加对Microsoft Excel的引用。这可以通过打开“解决方案资源管理器”,右键单击“引用”文件夹,选择“添加引用”,然后在“COM”选项卡下找到并选择“Microsoft Excel Object Library”来完成。 2. 创建一个窗体,将DataGridView控件拖放到窗体上,并设置它的列。 3. 在窗体添加一个按钮,并为其添加一个Click事件处理程序。 4. 在事件处理程序,使用OpenFileDialog对话框选择要导入Excel文件。 5. 使用Microsoft.Office.Interop.Excel命名空间Excel.Application和Excel.Workbook对象打开Excel文件。 6. 读取Excel文件数据,将其存储在DataTable。 7. 将DataTable数据绑定到DataGridView控件。 8. 在窗体添加一个文本框和一个查询按钮,并为查询按钮添加一个Click事件处理程序。 9. 在事件处理程序,使用LINQ查询语句对DataGridView控件数据进行查询,并将结果显示在DataGridView。 下面是一个简单的示例代码,用于将Excel文件导入DataGridView,并对其进行查询: ``` using System; using System.Data; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; namespace ExcelToDataGridView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnImport_Click(object sender, EventArgs e) { // 使用OpenFileDialog选择Excel文件 OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Excel Files|*.xlsx;*.xls;*.xlsm"; if (openFileDialog.ShowDialog() == DialogResult.OK) { // 创建Excel对象 Excel.Application excelApp = new Excel.Application(); Excel.Workbook workbook = excelApp.Workbooks.Open(openFileDialog.FileName); // 获取第一个工作表 Excel.Worksheet worksheet = workbook.Sheets[1]; // 读取Excel文件数据,将其存储在DataTable DataTable dataTable = new DataTable(); int rowCount = worksheet.UsedRange.Rows.Count; int columnCount = worksheet.UsedRange.Columns.Count; for (int i = 1; i <= rowCount; i++) { DataRow dataRow = dataTable.NewRow(); for (int j = 1; j <= columnCount; j++) { if (i == 1) { // 将第一行作为列名 dataTable.Columns.Add(worksheet.Cells[i, j].Value.ToString()); } else { dataRow[j - 1] = worksheet.Cells[i, j].Value; } } if (i > 1) { dataTable.Rows.Add(dataRow); } } // 关闭Excel对象 workbook.Close(); excelApp.Quit(); // 将DataTable数据绑定到DataGridView控件 dataGridView1.DataSource = dataTable; } } private void btnQuery_Click(object sender, EventArgs e) { // 使用LINQ查询语句对DataGridView控件数据进行查询 string query = txtQuery.Text.Trim(); if (!string.IsNullOrEmpty(query)) { DataView dataView = dataGridView1.DataSource as DataView; if (dataView != null) { dataView.RowFilter = query; dataGridView1.DataSource = dataView; } } } } } ``` 请注意,上述示例代码仅提供了一个基本的框架,你需要根据实际情况进行修改和补充。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值