/// <summary> /// Кнопка экспорта данных в dbf файл /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dbfToolStripMenuItem_Click(object sender, EventArgs e) { string status = "Экспортирую данные в dbf, пожалуйста подождите..."; log.Write(status); StatusExportCurrent.Text = status; MessageBox.Show(status, "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); ChildJobCl jobCl = new ChildJobCl(); jobCl.ThreadProc( new ThreadStart(() => { //Собираем информацию о столбцах List <string[]> FieldInfo = dbfFile.GetFieldInfo(dataGridView1); // Массив строк со значениями string[] RowsVal = dbfFile.GetValuesConcat(dataGridView1); //Возводим все поля в верхний регистр string StrField = String.Join(", ", FieldInfo[0]).ToUpper(); try { dbfFile.CreateDBF("Test", FieldInfo[1]); //Записываем в dbf файл данные for (int i = 0; i < RowsVal.Count(); i++) { dbfFile.SetDBF($"INSERT INTO TEST.DBF ({StrField}) VALUES {RowsVal[i]}"); } status = "Экспорт в dbf выполнен успешно."; log.Write(status); StatusExportCurrent.Text = status; MessageBox.Show(status, "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { status = "Не могу получить доступ к файлу, закройте все приложения и повторите операцию."; log.Write(status); StatusExportCurrent.Text = status; MessageBox.Show($"{status}\r\nОшибка: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } })); }
/// <summary> /// Кнопка экспорта данных в Excel файл, /// далее можно сохранить в форматы CSV,XLS,XSLX или другие /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void excelToolStripMenuItem_Click(object sender, EventArgs e) { string status = ""; ChildJobCl jobCl = new ChildJobCl(); jobCl.ThreadProc( new ThreadStart(() => { Excel.Application exApp = new Excel.Application(); exApp.Workbooks.Add(Type.Missing); exApp.Columns.ColumnWidth = 15; for (int i = 0; i < dataGridView1.ColumnCount; i++) { exApp.Cells[1, 1 + i] = dataGridView1.Columns[i].HeaderText; } for (int i = 0; i < dataGridView1.ColumnCount; i++) { for (int j = 0; j < dataGridView1.RowCount; j++) { exApp.Cells[j + 2, i + 1] = (dataGridView1[i, j].Value).ToString(); } } exApp.Visible = true; status = "Выполнен экспорт в excel файл"; log.Write(status); StatusExportCurrent.Text = status; MessageBox.Show(status, "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); })); status = "Экспортирую данные в excel, пожалуйста подождите..."; log.Write(status); StatusExportCurrent.Text = status; MessageBox.Show(status, "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); }