C# 导出到包含计数或日期时间的xls文件
我正在尝试使用streamWriter将我的datagridview数据导出到excel文件,它工作正常,但当第二次导出时,它会替换旧文件 这是我的密码C# 导出到包含计数或日期时间的xls文件,c#,export,streamwriter,C#,Export,Streamwriter,我正在尝试使用streamWriter将我的datagridview数据导出到excel文件,它工作正常,但当第二次导出时,它会替换旧文件 这是我的密码 private void button1_Click(object sender, EventArgs e) { if (dataGridView1.Rows.Count > 0) { try
private void button1_Click(object sender, EventArgs e)
{
if (dataGridView1.Rows.Count > 0)
{
try
{
// Bind Grid Data to Datatable
DataTable dt = new DataTable();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
dt.Columns.Add(col.HeaderText, col.ValueType);
}
int count = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (count < dataGridView1.Rows.Count - 1)
{
dt.Rows.Add();
foreach (DataGridViewCell cell in row.Cells)
{
dt.Rows[dt.Rows.Count - 1][cell.ColumnIndex] = cell.Value.ToString();
}
}
count++;
}
DateTime now = DateTime.Now;
int hour = now.Hour;
int minute = now.Minute;
int second = now.Second;
int month = now.Month;
int day = now.Day;
int year = now.Year;
// Bind table data to Stream Writer to export data to respective folder
StreamWriter wr = new StreamWriter(@"C:\Users\admin\Downloads\\Book1.xls");
// Write Columns to excel file
for (int i = 0; i < dt.Columns.Count; i++)
{
wr.Write(dt.Columns[i].ToString().ToUpper() + "\t");
}
wr.WriteLine();
//write rows to excel file
for (int i = 0; i < (dt.Rows.Count); i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
if (dt.Rows[i][j] != null)
{
wr.Write(Convert.ToString(dt.Rows[i][j]) + "\t");
}
else
{
wr.Write("\t");
}
}
wr.WriteLine();
}
wr.Close();
MessageBox.Show("Data Exported Successfully");
}
catch (Exception ex)
{
throw ex;
}
}
else
{
MessageBox.Show("No data found");
}
}
但它会收到错误消息
StreamWriter不包含接受7个参数的构造函数请尝试插入字符串:
StreamWriter wr = new StreamWriter($"C:\\Users\\admin\\Downloads\\Extension Report Time {hour}-{minute}-{second}.xls");
改变
到
你可以走了
,
表示一个新参数,但您要做的是连接,这里您可以使用+
或
String.Format(@"C:\Users\admin\Downloads\\Extension Report Time {0} - {1} - {2}", hour,minute,second);
在这种情况下,构建文件名并将其分配给变量是很有帮助的,这样您就可以看到它是什么,然后将它传递给使用它的方法。这当然也是正确的。
StreamWriter wr = new StreamWriter(@"C:\Users\admin\Downloads\\Extension Report Time", hour, " - ", minute, " - ", second".xls");
StreamWriter wr = new StreamWriter(@"C:\Users\admin\Downloads\\Extension Report Time " + hour + " - " + minute + " - " + second +".xls");
String.Format(@"C:\Users\admin\Downloads\\Extension Report Time {0} - {1} - {2}", hour,minute,second);