如何在没有XML的情况下将格式化的DataTable写入文件?

时间:2015-10-13 09:16:33

标签: c# datatable

我有一个数据表(dt),当我放入DataGridView时,它会自动且格式化。

如何将此表/视图“写”到txt文件?没有循环并自己完成所有格式化。

是否有内置功能?

dt.WriteXml(report,XmlWriteMode.IgnoreSchema);

不幸的是,上面提供了所有XML结构和标签。

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

2 个答案:

答案 0 :(得分: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));

这样可以节省自己编码所有格式的费用。

答案 1 :(得分:0)

  

是否有内置功能?

不,没有内置功能

这可能会为你做到这一点

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();
}