• 将DataTable转换成CSV文件


        DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表。CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片的许多属性。

       在.net项目中运用C#将DataTable转化为CSV文件,现在提供一个较为通用的方法,具体代码如下:

           /// <summary>
            /// 将DataTable转换成CSV文件
            /// </summary>
            /// <param name="dt">DataTable</param>
            /// <param name="filePath">文件路径</param>
            public static void SaveCsv(DataTable dt, string filePath)
            {
                FileStream fs = null;
                StreamWriter sw = null;
                try
                {
                    fs = new FileStream(filePath + dt.TableName + ".csv", FileMode.Create, FileAccess.Write);
                    sw = new StreamWriter(fs, Encoding.Default);
                    var data = string.Empty;
                    //写出列名称
                    for (var i = 0; i < dt.Columns.Count; i++)
                    {
                        data += dt.Columns[i].ColumnName;
                        if (i < dt.Columns.Count - 1)
                        {
                            data += ",";
                        }
                    }
                    sw.WriteLine(data);
                    //写出各行数据
                    for (var i = 0; i < dt.Rows.Count; i++)
                    {
                        data =string.Empty;
                        for (var j = 0; j < dt.Columns.Count; j++)
                        {
                            data += dt.Rows[i][j].ToString();
                            if (j < dt.Columns.Count - 1)
                            {
                                data += ",";
                            }
                        }
                        sw.WriteLine(data);
                    }
                }
                catch (IOException ex)
                {
                    throw new IOException(ex.Message, ex);
                }
                finally
                {
                    if (sw != null) sw.Close();
                    if (fs != null) fs.Close();
                }
            }
  • 相关阅读:
    [灵魂拷问]MySQL面试高频100问(工程师方向)
    前后端分离模式下的权限设计方案
    Netty实战:设计一个IM框架
    超实用,Linux中查看文本的小技巧
    Java面试,如何在短时间内做突击
    挑战10个最难回答的Java面试题(附答案)
    SpringBoot是如何动起来的
    Lab_2_SysOps_VPC_Linux_v2.5
    Lab_1_SysOps_Compute_Linux_v2.5
    change-resource-tags.sh
  • 原文地址:https://www.cnblogs.com/pengze0902/p/5974826.html
Copyright © 2020-2023  润新知