Microsoft.Office.Interop.Excel очень медленно

Хорошо, я пытаюсь понять это, извините, если я что-то неправильно понял, но вы теряете ссылки на что-то, когда устройство вращается.

Принимая удар ...

добавит ли

android:configChanges="orientation|keyboardHidden|screenSize"

в манифест для этой операции исправление вашей ошибки? или помешать onLoadFinished() сказать, что деятельность остановлена?

41
задан Paul Sasik 21 October 2010 в 15:39
поделиться

1 ответ

Я отвечаю немного поздно извините. Я работал над своим проектом, и мы должны были использовать interop Excel. И наши данные были слишком большими, который занимал больше чем 1 минуту с interop Excel. Мы попробовали что-то еще, что является копией все содержание datagridview к буферу обмена, откройте рабочий лист Excel с помощью interop Excel и вставьте содержание для выделений. Это занимает меньше чем 1 секунду и экспортирует наши данные отлично.

DataGridView для строкового представления:

    var newline = System.Environment.NewLine;
    var tab = "\t";
    var clipboard_string = "";

    foreach (DataGridViewRow row in dgProjeler.Rows)
    {
        for (int i = 0; i < row.Cells.Count; i++)
        {
            if (i == (row.Cells.Count - 1))
                clipboard_string += row.Cells[i].Value + newline;
            else
                clipboard_string += row.Cells[i].Value + tab;
        }
    }

и копия строка к буферу обмена

        Clipboard.SetText(clipboard_string);

И открытый рабочий лист, вставьте содержание.

        Excel.Application app = new Excel.Application();
        app.Visible = true;
        Excel.Workbook wb = app.Workbooks.Add(1);
        Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
        // changing the name of active sheet
        ws.Name = "Exported from gridview";

        ws.Rows.HorizontalAlignment = HorizontalAlignment.Center;
        app.ActiveWindow.Activate();


        ws.Activate();
        ws.Paste();

        ws.Cells.EntireColumn.AutoFit();

Это работает отлично надо мной, я надеюсь, что это помогает людям, которые все еще не могли найти решение.

0
ответ дан 27 November 2019 в 00:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: