2015-10-13 71 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)); 

這節省了自己編碼所有的格式。

相關問題