要避免将Excel数据复制粘贴到DataGridView表头,可以通过以下解决方法:
创建一个新的DataTable对象,用于存储从Excel中读取的数据。
使用ExcelDataReader库来读取Excel文件中的数据,并将其存储到新的DataTable对象中。
将新的DataTable对象绑定到DataGridView控件的Dat
aS
ource属性。
遍历DataGridView的列集合,将每个列的SortMode属性设置为DataGridViewColumnSortMode.NotSortable,以禁用列头排序功能。
下面是一个示例代码,演示了如何实现上述解决方法:
using System;
using System.Data;
using System.Windows.Forms;
using ExcelDataReader;
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
using (OpenFileDialog openFileDialog = new OpenFileDialog())
openFileDialog.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
if (openFileDialog.ShowDialog() == DialogResult.OK)
using (var stream = File.Open(openFileDialog.FileName, FileMode.Open, FileAccess.Read))
using (var reader = ExcelReaderFactory.CreateReader(stream))
var result = reader.AsDataSet();
// 创建一个新的DataTable对象
DataTable dataTable = new DataTable();
// 将Excel中的数据存储到新的DataTable对象中
foreach (DataTable table in result.Tables)
foreach (DataRow row in table.Rows)
if (row.ItemArray.Length > 0)
dataTable.Rows.Add(row.ItemArray);
// 将新的DataTable对象绑定到DataGridView控件的DataSource属性
dataGridView1.DataSource = dataTable;
// 遍历DataGridView的列集合,禁用列头排序功能
foreach (DataGridViewColumn column in dataGridView1.Columns)
column.SortMode = DataGridViewColumnSortMode.NotSortable;
在这个示例中,我们使用了ExcelDataReader库来读取Excel文件中的数据。然后,将数据存储到新的DataTable对象中,并将其绑定到DataGridView控件的DataSource属性。最后,通过遍历DataGridView的列集合,将每个列的SortMode属性设置为NotSortable,以禁用列头排序功能。