2015-10-13 110 views
1

我有一个datatable(dt),当我把它放到一个DataGridView中时,它会自动并且很好地格式化。如何在没有XML的情况下将格式化的DataTable写入文件?

如何将此表/视图写入txt文件?没有循环,自己做所有的格式。

是否有任何内置功能?

dt.WriteXml(report,XmlWriteMode.IgnoreSchema); 

上面的遗憾给出了所有的XML结构和标签。

我想要一些类似于“GridView”的东西。

+0

http://stackoverflow.com/questions/11749812/write-rows-from-datatable-to-text-file and http://stackoverflow.com/questions/17398019/how-to-convert-datatable-to -json-in-c-sharp会进入这个方向,但是你在遍历事物 – Thomas

+0

[Exporting datagridview to csv file]可能重复(http://stackoverflow.com/questions/9943787/exporting-datagridview-to- CSV文件) – ASh

回答

0

有没有内置功能?

NO,没有内置的功能

这可能会做的伎俩为您

public static void DataTable2TXT(DataTable dt, string fp) 
{ 
    int i = 0; 
    StreamWriter sw = null; 
    sw = new StreamWriter(fp, false); 
    for (i = 0; i < dt.Columns.Count - 1; i++) 
    { 
     sw.Write(dt.Columns[i].ColumnName + ";"); 
    } 
    sw.Write(dt.Columns[i].ColumnName); 
    sw.WriteLine(); 

    foreach (DataRow row in dt.Rows) 
    { 
     object[] array = row.ItemArray; 
     for (i = 0; i < array.Length - 1; i++) 
     { 
      sw.Write(array[i].ToString() + ";"); 
     } 
     sw.Write(array[i].ToString()); 
     sw.WriteLine(); 
    } 
    sw.Close(); 
} 
1

基于Adam Rakaska's approach(从Exporting datagridview to csv file):

只需要改变格式为“文本”:

dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText; 
dataGridView1.SelectAll(); 
Clipboard.SetDataObject(dataGridView1.GetClipboardContent()); 
report.WriteLine(Clipboard.GetText(TextDataFormat.Text)); 

这节省了自己编码所有的格式。

相关问题