创建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; }
}
答案 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