Вопрос

Мне нужно разработать небольшой проект для создания отчетов Excel в .NET, которые будут отправлены пользователям для использования.

Отчеты Excel будут содержать сводные таблицы.

У меня нет большого опыта работы с ними, но я могу придумать три альтернативы реализации:

  1. Задайте для него запрос, заполните его и отправьте отключенным.Таким образом пользователь сможет сгруппировать значения и немного поиграть, но не сможет обновить данные.
  2. Создайте небольшую базу данных доступа и отправьте ее вместе с файлом Excel, подключитесь к ней.
  3. Скопируйте данные в Excel (возможно, на какой-нибудь другой лист) и подключитесь к данным там.Я думаю, что это сделает файл Excel очень большим.

Какая альтернатива будет лучшей с точки зрения производительности и удобства использования?Есть ли другая альтернатива, о которой я не знаю?

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

Решение

Поскольку это небольшой проект, вы можете положиться на Excel для хранения данных из приложения.Его будет легче разрабатывать и тестировать, а также проще поддерживать.

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

@Эспо

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

Нужно ли хранить данные «офлайн»?

В тех случаях, когда у вас довольно много данных, я обычно делаю это, используя существующий sql-сервер, уже находящийся в сети.Если его планируется использовать в офисе, пользователи в любом случае будут подключены к Интернету.

Просто не забудьте создать выделенного пользователя с ограниченным доступом на sql-сервере для этого отчета и не хранить пароль «sa» в файле Excel.

Если под «отправлено пользователям» вы подразумеваете пользователей за пределами офиса, это не будет хорошим решением.Если это так, я бы попробовал включить данные в таблицу Excel и посмотреть, насколько большими они станут.Это будет наиболее удобное решение, если файл не слишком велик.

Кроме того, я нашел это в Интернете: Различные способы использования веб-запросов в Microsoft Office Excel 2003.Это позволит вам хранить данные на общедоступном веб-сайте (с секретным URL-адресом, если хотите), а затем позволить Excel извлекать данные.Таким образом, вам не придется заполнять почтовые ящики пользователей большими файлами, а также вы сможете обновить данные позже, не отправляя повторно файл Excel.

Вариант 3 кажется самым простым, и я бы подумал, что Excel не более эффективен для хранения данных, чем Access.Проблема с двумя файлами заключается в том, что ссылки между ними работают даже в другом месте.

@paulmorriss

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

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