zoukankan      html  css  js  c++  java
  • C#简单的操作csv文件

    csv又名逗号文件,可以当作不是表格,而是逗号隔开的文本,简单的两个写入方法:

    一:

    private string csvFilePath = "D:\Log\csv\";
    private string csvTitle =
    "SysTime" + "," + "Msg1" + "," + "Msg2" + "," +
    "Msg3" + " ";
    private void button4_Click(object sender, EventArgs e)
    {
    string writeData = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "," + 1 + "," +2 + "," +3 + " ";

    string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".csv";
    WriteTxtFile(csvFilePath + fileName, writeData);
    }
    private bool WriteTxtFile(string cscFile, string msg)
    {
    if (!File.Exists(cscFile)) NewCsvFile(cscFile); //判断文件是否存在,不存在则新建,按日期
    try
    {
    using (FileStream fileStream = new FileStream(cscFile, FileMode.Open, FileAccess.Write)) // 写入文件
    {
    StreamWriter streamWriter = new StreamWriter(fileStream);
    streamWriter.BaseStream.Seek(0, SeekOrigin.End); // 在csv末尾写入
    streamWriter.Write(msg); // 写入csv文件内容
    streamWriter.Flush();
    streamWriter.Close();
    fileStream.Close();
    }
    return true;
    }
    catch { return false; }
    }
    private void NewCsvFile(string csvFile)
    {
    string path = csvFile.Substring(0, csvFile.LastIndexOf("\"));
    if (!Directory.Exists(path)) Directory.CreateDirectory(path); //判断路径是否存在,不存在则创建
    if (!File.Exists(csvFile)) //判断文件是否存在,不存在则创建
    {
    using (FileStream fileStream = new FileStream(csvFile, FileMode.Create, FileAccess.Write))
    {
    StreamWriter streamWriter = new StreamWriter(fileStream);
    streamWriter.BaseStream.Seek(0, SeekOrigin.End); // 在csv末尾写入
    streamWriter.Write(csvTitle); // 写入csv文件表头
    streamWriter.Flush();
    streamWriter.Close();
    fileStream.Close();
    }
    }
    }

    二:

    StringBuilder csvdata = new StringBuilder();
    private void button9_Click(object sender, EventArgs e)
    {
    string savedatepath = @"D:Logcsv";
    string savedatename = string.Format(@"{0}.csv", DateTime.Now.ToString("yyyyMMdd"));
    string savedatefile = string.Format(@"{0}{1}", savedatepath, savedatename);
    if (!File.Exists(savedatefile))
    {
    csvdata.Append(string.Format("{0},{1},{2}", "Time", "Barde", "Data"));
    SaveDataToLocal(savedatepath, savedatename, csvdata.ToString());
    csvdata.Clear();
    }
    csvdata.Append(string.Format("{0},{1},{2}", DateTime.Now.ToString("yyyyMMdd"), "111", "222"));
    SaveDataToLocal(savedatepath, savedatename, csvdata.ToString());
    csvdata.Clear();
    }

    private string SaveDataToLocal(string dirpath, string filename, string data) // save data to local path
    {
    string rtn = "";
    string filePath = null;
    filePath = string.Format(@"{0}{1}", dirpath, filename);
    try
    {
    DirectoryInfo dirpathinfo = new DirectoryInfo(dirpath);
    if (!dirpathinfo.Exists)
    {
    dirpathinfo.Create();
    }
    FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
    StreamWriter writer = new StreamWriter(fs, Encoding.ASCII);//这里ASCII码输出CSV使用,但txt文件最好用UTF-8,因为汉字不用ASCII码
    writer.WriteLine(data);
    writer.Close();
    fs.Close();
    }
    catch (Exception ex)
    {
    rtn = ex.Message.ToString();
    }
    return rtn;
    }

    熟练后可以用二元数组或者数据库写入,后续npio和调用有时间在更新~

  • 相关阅读:
    atitit.解决net.sf.json.JSONException There is a cycle in the hierarchy
    atitit.查看预编译sql问号 本质and原理and查看原生sql语句
    atitit.基于http json api 接口设计 最佳实践 总结o7
    atitit.spring3 mvc url配置最佳实践
    Atitit.列表页面and条件查询的实现最佳实践(2)翻页 分页 控件的实现java .net php
    atitit。自定义uml MOF EMF体系eclipse emf 教程o7t
    atitit.编辑表单的实现最佳实践dwr jq easyui
    Atitit. 提升开发效率与质量DSL ( 3) 实现DSL的方式总结
    atitit.设计模式(2) 查表模式/ command 总结
    Atitit. 提升软件开发效率and 开发质量java 实现dsl 4gl 的本质and 精髓 O725
  • 原文地址:https://www.cnblogs.com/shenhuawen/p/13635996.html
Copyright © 2011-2022 走看看