将数据DataGrid Cells中的值存储到数组中,并获取数字或列和行
本文关键字:数字 获取 Cells DataGrid 数据 存储 数组 | 更新日期: 2023-09-27 18:12:02
我有一个DataGridView,我需要对从中提取的数据做一些操作。我不会提前知道行数和列数,它必须取决于你使用鼠标选择数据的方式(类似于你在电子表格中做的方式)。
下面是我使用的代码:public double[] ExtractGridData(DataGridView grid)
{
int numCells = grid.SelectedCells.Count;
double[] cellsData = new double[numCells];
foreach (DataGridViewCell cell in grid.SelectedCells)
{
if (cell.Value != null)
cellsData[cell.RowIndex] = Convert.ToDouble(cell.Value);
}
return cellsData;
}
一个问题是,值的存储方式取决于选择的方向。是否有一种方法可以确保单元格(0,0)是数组中的第一个值,单元格(0,1)作为第二个值等等?
我希望最终结果是一个二维矩阵,行和列。我打算先找出列的个数然后把这个数组变成二维的。这样,我就能找到数组中每行的总和或者datagridview中的单元格
您需要对结果(或按位置选定的单元格)进行排序。例如:
public double[] ExtractGridData(DataGridView grid)
{
int numCells = grid.SelectedCells.Count;
double[] cellsData = new double[numCells];
int[] cellsKeys = new int[numCells];
int cnt = 0;
foreach (DataGridViewCell cell in grid.SelectedCells)
{
if (cell.Value != null)
{
cellsData[cnt] = Convert.ToDouble(cell.Value);
cellsKeys[cnt] = cell.RowIndex + cell.ColumnIndex * grid.ColumnCount;
cnt++;
};
}
Array.Sort(cellsKeys, cellsData);
return cellsData;
}
您可以修改密钥创建过程以达到所需的顺序。你真的不需要关于招聘职位的信息吗?