Ejemplo n.º 1
0
        private void GenerateReport_Click(object sender, EventArgs e)
        {
            List <string[]> measures, statuses;

            ReadShownResults(out measures, out statuses);

            if (measures.Count == 0 && statuses.Count == 0)
            {
                MessageBox.Show("Не выбрано ни одной записи для экспорта", "Ошибка экспорта данных",
                                MessageBoxButtons.OK);
            }
            else
            {
                SaveFileDialog save = new SaveFileDialog();
                save.Filter          = "xlsx-файлы (*.xlsx)|*.xlsx";
                save.CheckFileExists = false;

                if (save.ShowDialog() == DialogResult.OK)
                {
                    Thread excelThread =
                        new Thread(ExcelWorker.WriteResults);

                    excelThread.Name = "ExcelWriter";

                    ExcelExportData data = new ExcelExportData(save.FileName, measures, statuses, Patient);

                    excelThread.Start(data);

                    //MessageBox.Show("Файл успешно сохранен", "Сохранение данных", MessageBoxButtons.OK);
                }
            }
        }
Ejemplo n.º 2
0
        public static void WriteResults(object data)
        {
            ExcelExportData resultsInfo = data as ExcelExportData;

            Excel.Application workExcel = new Excel.Application();
            workExcel.Workbooks.Add();

            Worksheet sheet = (Worksheet)workExcel.ActiveSheet;

            int beginRow = 2, beginColumn = 3;


            WritePatientInfo(sheet, ref beginRow, beginColumn, resultsInfo.patient);
            beginRow += 2;

            if (resultsInfo.measures.Count != 0)
            {
                // запись состояний здоровья
                sheet.Cells[beginRow++, beginColumn] = "Записанные измерения прибора";
                string[] headers = { "Время", "Измерение" };

                WriteHeader(sheet, beginRow++, beginColumn, headers);
                WriteMeasuredData(sheet, ref beginRow, beginColumn, resultsInfo.measures);

                beginRow += 3;
            }

            if (resultsInfo.statuses.Count != 0)
            {
                // запись состояний здоровья
                sheet.Cells[beginRow++, beginColumn] = "Записанные состояния здоровья";
                string[] headers = { "Время", "Запись" };

                WriteHeader(sheet, beginRow++, beginColumn, headers);
                WriteHealthStatuses(sheet, ref beginRow, beginColumn, resultsInfo.statuses);
            }

            // выравниваем стобцы
            ((Excel.Range)sheet.Columns[beginColumn, Type.Missing]).EntireColumn.AutoFit();
            ((Excel.Range)sheet.Columns[beginColumn + 1, Type.Missing]).EntireColumn.AutoFit();

            sheet.SaveAs(resultsInfo.fileDirectory, Excel.XlFileFormat.xlOpenXMLWorkbook);
            workExcel.Quit();
        }