将datagridview的可见列导出到csv [英] exporting visible columns of datagridview to 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屋!