我有这个代码可以创建一个CSV文件(我在This StackOverflow Post上找到)。
private void saveCSV_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
string filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*";
saveFileDialog1.Filter = filter;
const string header = "Header1, Header2, Header 3";
StreamWriter writer = null;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
filter = saveFileDialog1.FileName;
writer = new StreamWriter(filter);
writer.WriteLine(header);
writer.Close();
}
}
我想要做的是在CSV文件中写第二行,其中包含来自名为
的部分的数据private void parseFile_Click(object sender, EventArgs e)
有很多字符串,包括Title,Firstname和Lastname。
我试过
string LineOneData = Title, Firstname, Lastname;
然后添加
writer.Write(LineOneData);
之后
writer.Write(header);
行,但是我得到了消息(在新的字符串行上)“名称Title在当前上下文中不存在”...我假设是因为Dialog对{{1}一无所知}。section。
我能得到一些建议吗?
答案 0 :(得分:0)
如果Title,Firstname和Lastname是您必须更改的变量
string LineOneData = Title, Firstname , Lastname;
到
string LineOneData = Title + "," + Firstname + "," + Lastname;
或
string LineOneData = string.Format("{0}, {1}, {2}", Title, Firstname, Lastname);
答案 1 :(得分:0)
首先是术语速成课程。它被称为函数或方法,而不是部分。现在开始解释您遇到的问题并提出解决方案。
private void saveCSV_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
string filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*";
saveFileDialog1.Filter = filter;
const string header = "Header1, Header2, Header 3";
StreamWriter writer = null;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
filter = saveFileDialog1.FileName;
using( writer = new StreamWriter(filter) )
{
writer.WriteLine(header);
writer.Close();
}
}
}
然后在您的其他功能parseFile_Click
中,添加以下行
string LineOneData = Title + "," + Firstname + "," + Lastname;
File.AppendAllText(filter, LineOneData);
这会将信息附加到上面生成的CSV。您需要确保先保存了csv。否则,您可以通过检查过滤器是否指向有效文件(例如!string.IsNullOrEmpty(filter) && File.Exists(filter)
。