![](/img/trans.png)
[英]C# | Export datagridview to textfile containing header text values
[英]Export DataGridView to text file with header
我想將DataGridView
導出到文本文件。 我寫這段代碼。 它工作正常,但我也想將列標題寫入文本文件。
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Text File|*.txt";
var result = dialog.ShowDialog();
if (result != DialogResult.OK)
return;
StringBuilder builder = new StringBuilder();
int rowcount = dgvSum.Rows.Count;
int columncount = dgvSum.Columns.Count;
for (int i = 0; i < rowcount - 1; i++)
{
List<string> cols = new List<string>();
for (int j = 0; j < columncount - 1; j++)
{
cols.Add(dgvSum.Rows[i].Cells[j].Value.ToString());
}
builder.AppendLine(string.Join("\t", cols.ToArray()));
}
System.IO.File.WriteAllText(dialog.FileName, builder.ToString());
MessageBox.Show(@"Text file was created.");
我會使用內置功能( GetClipboardContent()
方法)
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Text File|*.txt";
var result = dialog.ShowDialog();
if (result != DialogResult.OK)
return;
// setup for export
dgvSum.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;
dgvSum.SelectAll();
// hiding row headers to avoid extra \t in exported text
var rowHeaders = dgvSum.RowHeadersVisible;
dgvSum.RowHeadersVisible = false;
// ! creating text from grid values
string content = dgvSum.GetClipboardContent().GetText();
// restoring grid state
dgvSum.ClearSelection();
dgvSum.RowHeadersVisible = rowHeaders;
System.IO.File.WriteAllText(dialog.FileName, content);
MessageBox.Show(@"Text file was created.");
所以你需要在第一個for
循環之前使用這一行:
List<string> headerCols = new List<string>();
for (int j = 0; j < columncount - 1; j++)
{
headerCols.Add(dgvSum.Columns[j].HeaderText);
}
builder.AppendLine(string.Join("\t", headerCols));
for (int i = 0; i < rowcount - 1; i++)
{
....
....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.