保存数据为CSV文件

在一些项目中,有一些动态数据保存的需求,保存为CSV。

解决方法如下:

引用:

using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Windows.Forms;

-----------------------------------------------------------

 private  object CsvCodeData_Lock = new object();

/// <summary>
/// 保存数据为CSV文件
/// </summary>
/// <param name="ListData">数据</param>
/// <param name="Header">文件头</param>
/// <param name="FilePath">文件路径</param>
/// <param name="fileType">文件分类</param>
/// <returns></returns>
public bool CsvDataSave(List<SortedList> ListData, SortedList Header, string FilePath, string fileType)
{
bool Re = false;
if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
lock (CsvCodeData_Lock)
{
string dt = DateTime.Now.ToString("yyyy-MM-dd");
string filename = Path.Combine(FilePath, fileType + "-" + dt + ".csv");
// string filename = Path.Combine(CsvCodeFilePath, "电池扫码-" + "-" + dt + ".csv");
StreamWriter sw = null;
try
{
if (!File.Exists(filename))
{
sw = new StreamWriter(filename, false, Encoding.Default);


StringBuilder sb_value = new StringBuilder();

foreach (System.Collections.DictionaryEntry objDE in Header)
{
// sb_field.Append(objDE.Key.ToString() + ",");
sb_value.Append( objDE.Value.ToString() + ",");

}
// sb_field.Remove(sb_field.Length - 1, 1);
sb_value.Remove(sb_value.Length - 1, 1);

sw.WriteLine(sb_value.ToString());

}
else
{
sw = new StreamWriter(filename, true, Encoding.Default);

foreach (SortedList dr in ListData)
{
StringBuilder sb_value2 = new StringBuilder();
foreach (System.Collections.DictionaryEntry objDE in Header)
{
string StrVal = dr[objDE.Key.ToString()].ToString();
sb_value2.Append( StrVal + ",");
}
sb_value2.Remove(sb_value2.Length - 1, 1);
sw.WriteLine(sb_value2.ToString());
}


}
sw.Close();
sw = null;
Re = true;
}
catch (Exception ex)
{
if (sw != null)
{
sw.Close(); sw = null;
}
LogMsg.MsgException(ex.Message, "CsvDataSave");
Re = false;
}
}
return Re;
}

posted @ 2023-03-15 09:41  chenaran  阅读(57)  评论(0编辑  收藏  举报