如何将数据附加到CSV

时间:2018-01-15 21:15:43

标签: c#

创建excel文件后,我应该如何添加更多数据,每次调用该方法时都应附加到日期时间,名称,消息下的日志文件底部?任何提示?

public bool UpdateLogile(string ModuleName, string ProcessName, string Message) {
        try {
            string strPath = Properties.Settings.Default.SystemLogPath;
            string strFileName = Properties.Settings.Default.SystemLogFileName;
            string strPathAndFile = string.Concat(strPath, "\\", strFileName);

            if (!File.Exists (strPathAndFile )) { // the file doesn't exist, create it 
            using(FileStream fs = new FileStream (strPathAndFile , FileMode.Create)) {
                    //nothing else to do; object will colse on its own
                }
            using(StreamWriter sw = new StreamWriter (strPathAndFile , true)) {
                    StringBuilder sb = new StringBuilder();
                    sb.Append(string.Concat("Date.Time", "\t", "ModuleName", "\t", "Message"));
                    sw.WriteLine(sb.ToString());
                }
            }

            //append to file with the current date-time, ModuleName, Message
            // 12/12/2018 11:33:55 004 pm
            return true;

        }
        catch (Exception ex) { return false; }
    }

2 个答案:

答案 0 :(得分:1)

首先,您似乎正在以CSV格式写入文本文件,而不是实际的Excel文件(这有点复杂)。

因此,与任何其他文本文件一样,问题在于您打开文件的方式。

new FileStream(strPathAndFile , FileMode.Create);

如果查看FileMode Enumeration的文档,您会看到FileMode.Create指定:

  

如果该文件已存在,则会被覆盖。

我认为这就像使用FileMode.Append一样简单。此值将导致新内容附加到任何现有文件。 (如果文件尚不存在,仍将创建该文件。)

答案 1 :(得分:0)

如果您实际上是在创建Microsoft Excel文件之后,而不是可以导入到Excel的文件,那么您应该明确地将OpenXML包含在项目中。

创建真实的Excel文件非常简单。 https://msdn.microsoft.com/en-us/library/office/bb448854.aspx