{$IF Defined(MSWINDOWS) or Defined(MACOS)}
// some code
{$ENDIF}
这是从datagridview导出所有数据,但我不想导出"日期"列和"复选框"柱
显示如下
答案 0 :(得分:0)
您可以使用额外的计数器来获取正确的输出(而不仅仅是空列)。此外,您可以将“跳过”列的逻辑移动到函数。
int columnsCount = 0;
//export header
for (i = 1; i <= this.datagridview1.Columns.Count; i++)
{
if (SkipColumn(this.datagridview1.Columns[i - 1]))
continue;
columnsCount++;
ExcelSheet.Cells[3, columnsCount] = this.datagridview1.Columns[columnsCount - 1].HeaderText;
}
//export data
for (i = 1; i <= this.datagridview1.RowCount; i++)
{
columnsCount = 0;
for (j = 1; j <= datagridview1.Columns.Count; j++)
{
if (SkipColumn(this.datagridview1.Columns[i - 1]))
continue;
columnsCount++;
ExcelSheet.Cells[i + 3, columnsCount] = datagridview1.Rows[i - 1].Cells[columnsCount - 1].Value;
}
}
// ...
private bool SkipColumn(DataGridViewColumn column)
{
return column.GetType() == typeof(DataGridViewCheckBoxColumn)
|| column.Name == "Date";
}
您可以将任何逻辑添加到SkipColumn
。使用DataGridViewColumn
属性添加任何验证,条件。
了解DataGridViewColumn
属性at MSDN。