C# 導出CSV


region "導出CSV"

    /// <summary>
    /// DataTableToCsv
    /// </summary>
    /// <param name="dt"></param>
    /// <param name="fileName">文件名稱,不用后綴</param>
    /// <remarks>
    /// 文件格式
    ///每條記錄占一行 
    ///以逗號為分隔符 
    ///逗號前后的空格會被忽略 
    ///字段中包含有逗號,該字段必須用雙引號括起來 
    ///字段中包含有換行符,該字段必須用雙引號括起來 
    ///字段前后包含有空格,該字段必須用雙引號括起來 
    ///字段中的雙引號用兩個雙引號表示 
    ///字段中如果有雙引號,該字段必須用雙引號括起來 
    ///第一條記錄,可以是字段名 
    /// </remarks>
    public static void TableToCsv(List<ExcelFormat> excelFormat, string fileName)
    {
        DataTable dt = CsvStreamReader.ToDataTableTow(excelFormat);

        if (dt.Columns.Count > 0)
        {
            dt.Columns["UploadTime"].ColumnName = "時間";
            dt.Columns["AgCI1"].ColumnName = "測點";
            dt.Columns["AgCI2"].ColumnName = "測試成果";
        }
        //string stmp = Assembly.GetExecutingAssembly().Location;
        //stmp = stmp.Substring(0, stmp.LastIndexOf('\\'));//刪除文件名
        fileName = ConfigurationManager.AppSettings["Path"] + fileName + ".csv";
        //string curPath = Directory.GetCurrentDirectory();
        string savePath = ConfigurationManager.AppSettings["Path"];
        string saveFile = fileName;
        //創建路徑和文件
        FileStream fs;
        if (!Directory.Exists(savePath))
        {
            Directory.CreateDirectory(savePath);
        }
        if (!File.Exists(saveFile))
        {
            fs = new FileStream(saveFile, FileMode.CreateNew, FileAccess.ReadWrite);
        }
        else
        {
            File.Delete(saveFile);
            fs = new FileStream(saveFile, FileMode.CreateNew, FileAccess.ReadWrite);
        }
        //StreamWriter sw = new StreamWriter(fs, new System.Text.UnicodeEncoding());
        StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);

        //寫標題
        int iColCount = dt.Columns.Count;
        for (int i = 0; i < iColCount; i++)
        {
            sw.Write(dt.Columns[i]);
            //sw.Write(dt.Columns[i]);
            if (i < iColCount - 1)
            {
                sw.Write(",");
                //sw.Write("|");
            }
        }
        sw.Write(sw.NewLine);

        //寫內容
        foreach (DataRow dr in dt.Rows)
        {
            for (int i = 0; i < iColCount; i++)
            {
                if (!Convert.IsDBNull(dr[i]))
                    sw.Write(dr[i].ToString());
                    //sw.Write(dr[i].ToString());
                else
                    sw.Write("\"\"");
                    //sw.Write("");
                if (i < iColCount - 1)
                {
                    sw.Write(",");
                    //sw.Write("|");
                }
            }
            sw.Write(sw.NewLine);
        }
        sw.Flush();
        sw.Close();
        fs.Close();
    }
    #endregion


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM