我有一个excel文件,其中包含一个包含true或false(text)的列但在导入文件后,具有true或false的列在datagridview中显示为复选框列而不是文本本身。
如何解决这个问题?这与Excel有关吗?
提前致谢。
答案 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:
}
最后,一列的数据类型确定如何显示一列中的单元格。