Thứ Tư, 28 tháng 10, 2015

Convert DataTable to CSV string

public static class DataTableExtension
{
    public static string ToCSV(this DataTable dt)
    {
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i <= dt.Columns.Count - 1; i++)
        {
            sb.Append(dt.Columns[i].ColumnName);

            if (i < dt.Columns.Count - 1)
            {
                sb.Append(",");
            }
        }

        sb.AppendLine();

        for (int i = 0; i <= dt.Rows.Count - 1; i++)
        {
            for (int j = 0; j <= dt.Columns.Count - 1; j++)
            {
                object o = dt.Rows[i][j];
                if (o != null)
                {
                    string value = o.ToString();

                    if (value.Contains(","))
                    {
                        value = string.Concat("\"", value, "\"");
                    }

                    if (value.Contains("\r"))
                    {
                        value = value.Replace("\r", " ");
                    }
                    if (value.Contains("\n"))
                    {
                        value = value.Replace("\n", " ");
                    }

                    sb.Append(value);
                }

                if (j < dt.Columns.Count - 1)
                {
                    sb.Append(",");
                }
            }

            sb.AppendLine();
        }

        return sb.ToString();
    }
}

Không có nhận xét nào :

Đăng nhận xét