使用计数或日期时间导出到 xls 文件
Export to xls file with count or date time
我正在尝试使用 streamWriter 将我的 datagridview 数据导出到 excel 文件,它工作正常,但在第二次导出时它会替换旧文件。
这是我的代码
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 wr = new StreamWriter(@"C:\Users\admin\Downloads\Extension Report Time", hour, " - ", minute, " - ", second".xls");
但它收到错误消息
StreamWriter 不包含接受 7 个参数的构造函数
尝试内插字符串:
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");
到
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 将我的 datagridview 数据导出到 excel 文件,它工作正常,但在第二次导出时它会替换旧文件。
这是我的代码
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 wr = new StreamWriter(@"C:\Users\admin\Downloads\Extension Report Time", hour, " - ", minute, " - ", second".xls");
但它收到错误消息
StreamWriter 不包含接受 7 个参数的构造函数
尝试内插字符串:
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");
到
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);