C#: Как я могу открыть и закрыть рабочую книгу Excel?

Я думаю, начиная с предположения, что заключения Jeff корректны, не обязательно хорошо; поддержав код хранимой процедуры, а также основанные на JDBC слои данных, я могу сказать, что эти вызванные проблемы обслуживания в изобилии, главным образом связанный с неспособностью понять, что продолжалось в более высоком уровне.

база данных А является обязательно низким уровнем; это хранит числа и строки по существу. Бизнес-логика является высоким уровнем. Поэтому у нас есть абстракция.

Лично, я думаю, что путем Rails/ActiveRecord является лучшее решение наличия объекта/модели предметной области, но также и способности использовать в своих интересах реляционную базу данных.

Так: не выводите ORM, но не принимайте значение по умолчанию к нему также. Это - инструмент, который решает определенные проблемы. Проигнорировать его было бы не осведомлено, и всегда использовать его будет высокомерно.

7
задан Todd Main 31 July 2010 в 20:52
поделиться

3 ответа

после ссылки на Microsoft.Office.Interop.Excel также Не забудьте очистить файл finally.

using Excel = Microsoft.Office.Interop.Excel;

        Excel.ApplicationClass _Excel;
        Excel.Workbook WB;
        Excel.Worksheet WS;

    try
        {

        _Excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
        WB = _Excel.Workbooks.Open("FILENAME",
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing);

            //do something

        }
        catch (Exception ex)
        {
            WB.Close(false, Type.Missing, Type.Missing);

            throw;
        }
        finally
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WB);

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_Excel);


        }
12
ответ дан 6 December 2019 в 14:06
поделиться

Подумайте с помощью System.Diagnostics.Process для запуска, отслеживания и закрытия Excel. Этот сайт дает хорошее вступление: http://www.thescarms.com/dotnet/Process.aspx , включая запуск с невидимым окном и отправку в него ввода.

0
ответ дан 6 December 2019 в 14:06
поделиться

Быстрый Google дает мне это на код проекта:

http://www.codeproject.com/KB/office/csharp_excel.aspx

3
ответ дан 6 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

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