C# Проверка достоверности данных linq - PullRequest
0 голосов
/ 05 мая 2020

Я создал функцию, показанную ниже. Все работает нормально, проблема в том, что у меня есть сценарий ios, в котором было бы идеально иметь конструктор RadGridView grid в качестве Datatable. Я ищу конструктор, который может принимать тип ввода «RadGridView» или тип «Datatable» - своего рода «универсальный» конструктор, если это возможно?

public static void Export(RadGridView grid, string sheetName)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Filter = "Excel file |*.xlsx";
            saveFileDialog1.Title = "Save";
            saveFileDialog1.ShowDialog();
            if (saveFileDialog1.FileName != "")
            {
                Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
                Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
                app.Visible = false;
                worksheet = workbook.Sheets["Sheet1"];
                worksheet = workbook.ActiveSheet;
                worksheet.Name = sheetName;
                Microsoft.Office.Interop.Excel.Range aRange = worksheet.UsedRange;
                workbook.Worksheets[1].Cells.NumberFormat = "@";

                for (int i = 1; i < grid.Columns.Count + 1; i++)
                {
                    worksheet.Cells[1, i] = grid.Columns[i - 1].HeaderText;
                }
                for (int i = 0; i < grid.Rows.Count; i++)
                {
                    for (int j = 0; j < grid.Columns.Count; j++)
                    {
                        worksheet.Cells[i + 2, j + 1] = grid.Rows[i].Cells[j].Value.ToString();
                    }
                }

                aRange.Value = aRange.Value;
                aRange.Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;

                worksheet.Columns.AutoFit();
                workbook.SaveAs(saveFileDialog1.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                app.Quit();
            }
        }

Заранее спасибо!

1 Ответ

0 голосов
/ 05 мая 2020

Я решил это с помощью ключевого слова 'Dynami c'.

...