完整教程:写csv测试
2025-10-23 15:14 tlnshuju 阅读(0) 评论(0) 收藏 举报/// <summary>
/// 使用固定的字段名称和对应值写入CSV文件
/// </summary>
/// <param name="fieldNames">固定的字段名称列表(标题行)</param>
/// <param name="values">与字段对应的 values 列表</param>
/// <param name="filePath">CSV文档路径</param>
/// <param name="append">是否追加到现有文档,true为追加,false为覆盖</param>
public int WriteToCsv(List<string> fieldNames, List<object> values, string filePath)
{
// 验证参数
if (fieldNames == null || fieldNames.Count == 0)
return -1;
// throw new ArgumentException("字段名称列表不能为空", nameof(fieldNames));
if (values == null || values.Count == 0)
return -2;
// throw new ArgumentException("值列表不能为空", nameof(values));
if (fieldNames.Count != values.Count)
return -3;
// throw new ArgumentException("字段名称数量与值数量不匹配");
if (string.IsNullOrEmpty(filePath))
return -4;
// throw new ArgumentException("档案路径不能为空", nameof(filePath));
// 检查记录是否存在
filePath = filePath +"\\"+ DateTime.Now.ToString("yyyy-MM-dd")+".csv";
bool fileExists = File.Exists(filePath);
// 创建StringBuilder来构建内容
StringBuilder content = new StringBuilder();
// 仅在材料不存在或不追加时写入标题行
if ( !fileExists)
{
string header = string.Join(",", fieldNames);
content.AppendLine(header);
}
// 处理值并添加到内容
string valueLine = string.Join(",", values.Select(v =>
{
if (v == null) return "";
string valueStr = v.ToString();
// 处理包含逗号或引号的特殊值
if (valueStr.Contains(",") || valueStr.Contains("\""))
{
return $"\"{valueStr.Replace("\"", "\"\"")}\"";
}
return valueStr;
}));
content.AppendLine(valueLine);
// 写入文件
using (StreamWriter writer = new StreamWriter(filePath, fileExists, Encoding.UTF8))
{
writer.Write(content.ToString());
}
return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944338.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!