0

datagridviewで選択したチェックボックス項目のみをエクスポートしようとしています。私が持っている現在のコードは機能しますが、問題はすべてをエクスポートすることです。エクスポートされたcsvファイルでTrue / False値を確認できますが、私の人生では、真の値のみをエクスポートする方法を理解できません。すべてではない。コード例を以下に示します。

private void GetCellData()
    {
        string data = "";
        string userDesktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
        TextWriter tw = new StreamWriter(userDesktop + "\\" + "export.csv");

        // Count each row in the datagrid
        for (int i = 0; i < dataGridView1.Rows.Count; i++)
        {

            if (dataGridView1.Rows[i].Cells["Selection_Box"].Value != null &&
                (bool)dataGridView1.Rows[i].Cells["Selection_Box"].Value)
            {
                foreach (DataGridViewCell cell in dataGridView1.Rows[i].Cells)
                {
                    data += (cell.Value + ",");
                }
                data += "\n";
            }               
            else
            {
                continue;
            }
        }
        tw.WriteLine(data, "data");
        tw.Close();
    }

データグリッド「Selection_Box」のチェックボックスはDataGridViewCheckBoxColumnです。ExampleExportは、「エクスポート」というボタンにリンクされています。ユーザーがデータグリッドのチェックボックスを選択して[エクスポート]をクリックすると、.csvファイルが以下のような値でデスクトップにダンプされます。

True、3,1、Piping、Manual、RTD、2,45 Axe、
True、4,1、Piping、Manual、RTD、2,60 Axe、
True、5,1、Piping、Manual、RTD、1.5,45 C 、
False、6,1、Piping、Manual、RTD、2,45 Axe、
False、8,1、Piping、Manual、RTD、1.5,45 C、
False、29,1、Piping、Manual、RTD、2,45 C、

編集:私を正しい方向に向けてくれてありがとう、それは非常にありがたいです。私はifステートメントを次のように微調整することになりました。

if (dataGridView1.Rows[i].Cells["Selection_Box"].Value != null &&
                (bool)dataGridView1.Rows[i].Cells["Selection_Box"].Value)

選択した値をダンプしています。

4

3 に答える 3

2

最初のforブロック内のこのようなもの....

if(((bool)dataGridView1.Rows[i].Cells[0]) == true)
{
    // Loop through and get the values
    foreach (DataGridViewCell cell in dataGridView1.Rows[i].Cells)
    {
        data = data + (cell.Value + ",");
    }
    data += "\n";
}
else
{
    // else block not really necessary in this case, but illustrates the point....
    continue;
}
于 2011-06-16T11:22:33.743 に答える
2

CheckBox列の値を確認する必要があります。

if((bool) row.Cells["Column7"] as DataGridViewCheckBoxCell).FormattedValue)

trueの場合のみ、行の値を追加します

于 2011-06-16T11:23:34.480 に答える
0

この方法でも本当かどうか確認できます

if (Convert.ToBoolean(dataGridView1.Rows[i].Cells["Selection_Box"].Value) == true)
于 2016-02-23T17:44:07.323 に答える