Excel中的True或False在datagridview

时间:2016-09-26 09:23:28

标签: c# excel linq datagridview

我有一个excel文件,其中包含一个包含true或false(text)的列但在导入文件后,具有true或false的列在datagridview中显示为复选框列而不是文本本身。

如何解决这个问题?这与Excel有关吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这是一个古老的问题,但是我想发布一个答复,以防有人遇到相同的问题。我遇到了相反的问题-我将文本TRUE / FALSE作为字符串,并希望将其作为datagridview中的布尔值/复选框 在您的情况下,您需要更改相关列的数据类型。
这可以通过执行以下操作来实现

让我们先假设您有一个数据表4行x 4列,并且您知道第一列是布尔类型

private DataTable change_frombool_tostring(DataTable newDataTable)
{
    // take a copy of your original datatable
    int i = 0;
    DataTable newDataTable = originalDataTable.Clone();
    foreach (DataColumn dc in newDataTable.Columns)
    {
        // if you want to make a change to column 0 in your data table
        if (i == 0) 
        {
            // the data type for a boolean is typeof(bool) - we need to change it
            dc.DataType = typeof(string);
        }
       //Alternatively, if you wanted all boolean columns to be shown as a string, you could check each columns datatype then do 
        if (dc.DataType == System.Boolean) 
        {
            dc.DataType = typeof(string)
        }
    }
    foreach (DataRow dr in originalDataTable.Rows)
    {
        newDataTable.ImportRow(dr);
    }
    return newDataTable:
}

最后,一列的数据类型确定如何显示一列中的单元格。