将datagridview的可见列导出到csv [英] exporting visible columns of datagridview to csv

查看:103
本文介绍了将datagridview的可见列导出到csv的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个代码将datagridview行导出到csv并且它工作正常,但是当我使一些datagridview列不可见时,我不希望它们在导出的csv文件中。但我不能让它工作



I have this code to export datagridview rows to csv and it works fine, but when i make some columns of datagridview invisible I dont want them in exported csv file. but I cant get it to work

StreamWriter sw = new StreamWriter("d://gridview.csv");

for (int i = 0; i < dg1.Columns.Count; i++)
{
    sw.Write(dg1.Columns[i].HeaderText);
    if (i != dg1.Columns.Count)
    {
        sw.Write(",");
    }
}

sw.Write(sw.NewLine);

foreach (DataGridViewRow dr in dg1.Rows)
{

    for (int i = 0; i < dg1.Columns.Count; i++)
    {

        sw.Write(dr.Cells[i].Value);
        if (i != dg1.Columns.Count)
        {
            sw.Write(",");
        }
    }

    sw.Write(sw.NewLine);
}

sw.Flush();

sw.Close();





datagridview未绑定,因为其数据是从另一个datagridview克隆的



datagridview isn't bound because its data is cloned from another datagridview

推荐答案

只要查看列是否可见,(这应该可行)

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.aspx [ ^ ]

Just look for if the column is visible or not, (this should work)
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.aspx[^]
if(dg1.Colums[i].Visible)
              {}










StreamWriter sw = new StreamWriter("d://gridview.csv");

            for (int i = 0; i < dg1.Columns.Count; i++)
            {
              if(dg1.Colums[i].Visible)
              {
                sw.Write(dg1.Columns[i].HeaderText);
                if (i != dg1.Columns.Count)
                {
                    sw.Write(",");
                }
              }
            }

            sw.Write(sw.NewLine);

            foreach (DataGridViewRow dr in dg1.Rows)
            {

                for (int i = 0; i < dg1.Columns.Count; i++)
                {

                    sw.Write(dr.Cells[i].Value);
                    if (i != dg1.Columns.Count)
                    {
                        sw.Write",");
                    }
                }

                sw.Write(sw.NewLine);
            }

            sw.Flush();

            sw.Close()


保存的一种简单方法是使用剪贴板并在3行中



A simple way to save also is to use the clipboard and in 3 lines

Clipboard.SetDataObject(DataFormats.Text)
DataGridView.SelectAll()
IO.File.WriteAllText(Filename,DataGridView.GetClipBoardContent().GetText.Replace(vbTab, ","), System.Text.Encoding.ASCII)





将剪贴板内容设置为所需的DataFormat(文本)

选择要复制的内容

(注意:如果您的DGV中有过滤(隐藏?)元素,则不会被复制)

将剪贴板内容写入文件

(注意:这里我用逗号替换'Tab'分隔符以获取CSV文件)



sets the clipboard content to your desired DataFormat (Text)
select what you want to copy
(note:if you have filtered (invisible?) elements in your DGV they won't be copied)
Write the Clipboard content to the file
(note:here I have replaced the 'Tab' delimiter with a comma to get a CSV file)


这篇关于将datagridview的可见列导出到csv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆