C# 将excel/CSV文件数据导入GridView winforms中的可见列
我正在尝试将任何CSV/Excel文件中的数据填充到gridview中。当所有列都可见时,它可以正常上载。但是,我会根据用户的选择在网格中显示/隐藏列。因此,我希望粘贴的值仅填充在网格的可见列中。我在winforms工作。我在下面包含了用于将数据粘贴到网格中的代码C# 将excel/CSV文件数据导入GridView winforms中的可见列,c#,winforms,radgridview,C#,Winforms,Radgridview,我正在尝试将任何CSV/Excel文件中的数据填充到gridview中。当所有列都可见时,它可以正常上载。但是,我会根据用户的选择在网格中显示/隐藏列。因此,我希望粘贴的值仅填充在网格的可见列中。我在winforms工作。我在下面包含了用于将数据粘贴到网格中的代码 //Code for pasting clipboard data into gridview private void PopulateImportGrid() { char[] rowSplit
//Code for pasting clipboard data into gridview
private void PopulateImportGrid()
{
char[] rowSplitter = {'\r', '\n'};
char[] columnSplitter = {'\t'};
//get the text from clipboard
IDataObject dataInClipboard = Clipboard.GetDataObject();
if (dataInClipboard != null)
{
var stringInClipboard = (string) dataInClipboard.GetData(DataFormats.Text);
//split it into lines
string[] rowsInClipboard = stringInClipboard.Split(rowSplitter, StringSplitOptions.RemoveEmptyEntries);
// grdSiteDetails.DeferRefresh();
// loop through the lines, split them into cells and place the values in the corresponding cell.
using (grdSiteDetails.DeferRefresh())
{
for (int iRow = 0; iRow < rowsInClipboard.Length; iRow++)
{
grdSiteDetails.Rows.Add(iRow);
//split row into cell values
string[] valuesInRow = rowsInClipboard[iRow].Split(columnSplitter);
//cycle through cell values
for (int iCol = 0; iCol < valuesInRow.Length; iCol++)
{
//assign cell value, only if it within columns of the grid
if (grdSiteDetails.ColumnCount - 1 >= iCol)
{
grdSiteDetails.Rows[iRow].Cells[iCol].Value = valuesInRow[iCol];
}
}
}
}
}
grdSiteDetails.ColumnChooserSortOrder = RadSortOrder.None;
}`
列是如何隐藏的?如果您正在使用以下属性。粘贴时检查相同的属性
this.dataGridView1.Columns[columnName].Visible列名是在设计时添加的,我粘贴到网格中的数据将永远不会有要检查的列名。在执行下面的行之前,请检查iCol th位置的列是否隐藏。grdSiteDetails.Rows[iRow].Cells[iCol].Value