Экспорт в файл xls с указанием времени или даты - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь экспортировать мои данные в формате Excel в файл Excel, используя streamWriter, он работает нормально, но при повторном экспорте заменяет старый файл.

Вот мой код

 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 arugements

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Измените

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);
0 голосов
/ 26 мая 2018

Попробуйте интерполированную строку:

StreamWriter wr = new StreamWriter($"C:\\Users\\admin\\Downloads\\Extension Report Time {hour}-{minute}-{second}.xls");
...