c# - 将字符串数组值插入 DataGridView C#

标签 c# winforms datagridview insert arrays

我正在使用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/

相关文章:

.net - VS2010 中的 WinForms 视觉继承问题

winforms - Datagridview 列宽

c# - 下载网页并保存为 UTF-8 文本文件

c# - 网络服务接口(interface)?

c# - Winform Treeview 通过标签查找节点

c# - Datagridview Cell ToolTip延迟时间

c# - 从 datagridview 选择数据并重新插入选择 c#

c# - 如何改进 Entity Framework 和 Javascript 交互

c# - 流无效或未找到对应的签名

.net - 使用 Windows 调试工具调试 .NET 2.0 Winforms 应用程序