我正在使用C#开发Windows表单应用程序。我的程序将从 Excel 单元格中读取值并将数据插入到 DataGridView 中以显示用户。
读取 Excel 文件后,我得到字符串数组中的结果。如何插入 DataGridView 中?
private void btnImport_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application ExcelObj = null;
ExcelObj = new Microsoft.Office.Interop.Excel.Application();
if (ExcelObj != null)
{
if (tbxFileDirectory.Text != "")
{
Workbook workbook = ExcelObj.Workbooks.Open(
openFD.FileName, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true);
Sheets sheets = workbook.Worksheets;
//Get excel sheet number
Worksheet worksheet = (Worksheet)sheets.get_Item(1);
for (int i = 6; i <= worksheet.UsedRange.Rows.Count; i++)
{
Range range = worksheet.get_Range("A" + i.ToString(), "K" + i.ToString());
Array myvalues = (Array)range.Cells.Value;
string[] strArray = ConvertToStringArray(myvalues);
//INSERT INTO DATAGRIDVIEW
}
MessageBox.Show("File was imported successfully");
}
else
{
MessageBox.Show("Please select the file to import.");
}
}
else
{
MessageBox.Show("ERROR: EXCEL couldn't be started!");
}
}
我的 DataGrid 有 4 列:ProductID、ProductName、Price 和 Qty。我想在每一列中插入这些值:strArray[0]、strArray[1]、strArray[9] 和 strArray[10]。我怎样才能做到这一点?任何帮助将不胜感激!
最佳答案
DataGridView 在直接插入字符串时存在性能问题,并且如果您拥有的只是网格本身中的数据(尽管显然您必须从 Excel 解析数据),那么操作数据会很尴尬。通常最好将数据放入 DataTable 中,然后将其绑定(bind)到网格。
参见Add new column and data to datatable that already contains data - c#如果您需要通过代码将数据填充到 DataTable 的示例。
绑定(bind)很简单,将 DataTable 分配给网格的 DataSource 属性。
如果您获得的行数超过数百行,您可能仍然会遇到性能问题 - 但是,通过更改逻辑以虚拟化数据,请参阅 DataGridView live display of datatable using virtual mode举一个简单的例子。
关于c# - 将字符串数组值插入 DataGridView C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18375314/