示例#1
0
        /// <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);
                }
            }));
        }
示例#2
0
        /// <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);
        }