Вопрос

Мне нужно изменить книгу листов Excel (добавить листы/добавить данные/ скрыть столбцы / защитить ячейки паролем /изменить содержимое полей/и т.д. и т.п.)

следует ли мне использовать COM-объекты, предоставленные Microsoft (но тогда я думаю, что у них мало проблем с использованием в asp.NET)

или есть ли хорошая (коммерческая или бесплатная) библиотека/плагин, который можно использовать для выполнения такого рода деятельности.

пожалуйста помоги

Это было полезно?

Решение

попробуйте распространить сторонний компонент Sheet Gear

http://www.spreadsheetgear.com/

Другие советы

Самый простой способ, который я нашел, - использовать XML-формат Excel.Таким образом, вы можете редактировать лист Excel, как и любой другой XML-файл.Чтобы увидеть, как Excel скрывает столбцы или защищает их паролем, выполните эти действия вручную и посмотрите, как Excel сохраняет их в формате XML.Его легко написать, он очень стабилен и быстр.

Манипулировать собственными файлами Excel сложнее:вы можете использовать COM-объекты с основные сборки взаимодействия.По моему опыту, это очень сложно сделать правильно.В лучшем случае Excel оставляет свои старые копии, которые можно исправить с помощью запланированного ночного сброса сервера.В худшем случае Excel случайно зависнет, и ваш веб-сайт перестанет отвечать на запросы.

Другой способ работы с собственными файлами Excel — Инструменты Visual Studio для Office.Его, безусловно, проще использовать, чем COM-взаимодействие, и лучше всего он работает с Visual Basic:

Application.Workbooks.Open("Workbook.xls")

В C# отсутствуют необязательные параметры, и открытие книги становится чем-то вроде плохой шутки:

Application.Workbooks.Open(@"Workbook.xls",
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing,missing, missing);

Я не углублялся в VSTO, потому что манипуляции с XML мне очень хорошо помогали.Возможно, другие люди смогут прокомментировать, как это работает на веб-сайте ASP.NET.

С Электронная ТаблицаШестерня у вас есть полный доступ к документу Excel и всем возможностям макросов, включая возможность защищать и снимать защиту ячеек, столбцов и т. д.У нас есть то же самое, что вы описываете, за исключением WinForms.

Мы использовали COM-объекты, и я не могу их рекомендовать.Большая проблема заключается в том, что объекты никогда не освобождаются...

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top