首页 > 解决方案 > 对多个 DataGridView 列进行排序并导出为 CSV

问题描述

我正在编写一个 SQL 客户端,您可以在其中将 DataGridView 导出为 CSV(Excel)。问题是我在名为“ID”的单元格中有多个条目,例如 ID 21 有 4 次,但电话号码不同。是否可以在导出到 CSV 之前对它们进行排序,只有 ID 为 21 的行并且电话号码用“,”分隔?

这是我目前的代码:

private void ButtonDataGridInCSVExport(object sender, EventArgs e)
{
    if (dataGridViewResult.Rows.Count == 0)
    {
        return;
    }
    StringBuilder stringBuilder = new StringBuilder();

    string csvheader = "";
    for (int i = 0; i < dataGridViewResult.Columns.Count; i++)
    {
        csvheader += dataGridViewResult.Columns[i].Name + ";";
    }

    stringBuilder.Append(csvheader + Environment.NewLine);

    foreach (DataGridViewRow dataGridViewRow in dataGridViewResult.Rows)
    {
        if (!dataGridViewRow.IsNewRow)
        {

            for (int c = 0; c < dataGridViewRow.Cells.Count; c++)
            {
                stringBuilder.Append(dataGridViewRow.Cells[c].FormattedValue + ";");
            }
            stringBuilder.Append(Environment.NewLine);
        }
    }
    SaveFileDialog saveFileDialog = new SaveFileDialog();
    saveFileDialog.Filter = "CSV files (*.csv)|*.csv";
    if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        using (System.IO.StreamWriter sw = new System.IO.StreamWriter(saveFileDialog.FileName, false, Encoding.UTF8))
        {
            sw.WriteLine(stringBuilder.ToString());
            MessageBox.Show("CSV file saved.");
        }
    }
}

有谁知道如何使这成为可能?

这就是现在的样子: 现在的样子

这就是它应该是什么样子: 它应该是什么样子

标签: c#csvsortingdatagridviewmultiple-columns

解决方案


推荐阅读