Как получить электронную таблицу для открытия Excel вместо окна браузера? - PullRequest
10 голосов
/ 23 сентября 2008

Если вы вызываете javascript window.open и передаете URL в файл .xls, он открывается на некоторых машинах в окне браузера. Как вы можете заставить его в Excel?

Ответы [ 11 ]

3 голосов
/ 23 сентября 2008

Только пользовательский компьютер может «заставить» его в Excel. Тем не менее, в 99% случаев, если вы отправляете правильный MIME-тип и у пользователя есть Excel, он откроется в Excel, если они одобрят.

И только сервер может отправить правильный MIME-тип. Тип документа, который вы передаете в вызов JavaScript window.open, на это не влияет. Фактически, вызов window.open в лучшем случае просто откроет лишнее окно.

Лучше всего просто сослаться на документ с помощью <a href="foo.xls">. И если ваш сервер отправляет mime-тип application/x-excel или application/x-msexcel, это почти всегда подталкивает браузер к открытию нового окна с документом Excel.

1 голос
/ 23 сентября 2008

Если это просто статический файл, и вы используете Apache в Linux, проверьте файл с именем /etc/mime.types и убедитесь, что в нем есть следующая строка, чтобы связать расширение файла .xls с правильный тип MIME:

application/vnd.ms-excel    xls

Я предполагаю, что местоположение этого файла может отличаться в разных системах, но оно находится в /etc/mime.types на моем сервере, на котором выполняется RHEL4.

0 голосов
/ 16 апреля 2009

Вот шаги, чтобы вернуть это всплывающее окно при открытии сохраненного файла Excel.

  1. Щелкните правой кнопкой мыши по кнопке [START] и выберите «Исследовать», чтобы открыть окно Windows Explorer.
  2. В меню выберите Инструменты \ Параметры папки…
    • Выберите вкладку «Типы файлов» и прокрутите список файлов вниз.
    • Щелкните левой кнопкой мыши, чтобы выделить расширение файла XLS Microsoft Excel Worksheet, и нажмите кнопку «Дополнительно».

  3. В окне «Изменить тип файла» снимите флажок «Обзор в том же окне».

  4. Нажмите кнопку ОК, чтобы принять ваши изменения.

  5. Начать новый сеанс браузера. В следующий раз, когда вы откроете электронную таблицу Excel в папке «Входящие», вам будет предложено следующее окно. Не забудьте оставить «Всегда спрашивать, прежде чем открывать этот тип файла», как отмечено. Нажав кнопку Открыть, вы должны открыть свой файл в Excel.

0 голосов
/ 23 сентября 2008

Вы можете сделать это, используя LaunchinIE , элемент управления ActiveX, который позволит HTML-страницам запускать любое приложение на компьютере клиента без предупреждений безопасности.

Цитата с сайта: «Наконец-то веб-страницы могут запускать Word, Excel или любое другое корпоративное приложение без нареканий. Безопасно.»

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

Еще одна цитата с сайта: «Для обеспечения безопасности LaunchinIE необходимо тщательно настроить на стороне клиента; из-за этого ограничения он подходит только для использования в интрасети».

Я использую LaunchinIE в нашем учебном центре, чтобы я мог использовать Internet Explorer в качестве меню, которое позволяет пользователю выбирать настройки машины. Затем LaunchinIE вызывает пакетный скрипт, который настраивает машину для наилучшей поддержки выбранного обучения.

0 голосов
/ 23 сентября 2008

Нельзя, так как это зависит от клиентского компьютера.

Например, в Windows, если вы хотите, чтобы он всегда открывался в Excel, а не в окне браузера, вам нужно открыть «Мой компьютер», «Инструменты», «Свойства папки», «Типы файлов», выбрать тип XLS и нажать «Дополнительно». Есть два флажка: Обзор в одном окне и Открыть веб-документы на месте. Снимите оба флажка, закройте окно браузера, снова откройте его и попробуйте снова.

Однако, как я уже сказал: это зависит от клиента, вы не можете заставить его.

0 голосов
/ 23 сентября 2008

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

0 голосов
/ 23 сентября 2008
  1. Установите тип содержимого http для типа данных Excel: application / vnd.ms-excel
  2. Вам не нужно перенаправлять в новое окно, но вы получите всплывающее окно с просьбой сохранить или открыть файл.
  3. В отношении (2): я бы беспокоился, если бы браузер мог запускать внешнее приложение и загружать в него данные автоматически без вмешательства пользователя.
0 голосов
/ 23 сентября 2008

Я не думаю, что это возможно из javascript из-за проблем с безопасностью, ничто не помешает мошеннической веб-странице открыть десятки экземпляров excel / word.

Не могли бы вы установить гиперссылку на URL-адрес .xls, таким образом пользователь получит обычное приглашение на загрузку для просмотра файла.

0 голосов
/ 23 сентября 2008

Я не думаю, что вы можете: вы не можете вызывать внешние программы, используя Javascript по соображениям безопасности. Предполагая, что у пользователя установлен Excel, вы можете открыть новое окно без адресной строки, чтобы дать пользователю «иллюзию», что файл был открыт с помощью Excel в Internet Explorer.

0 голосов
/ 23 сентября 2008

Вы не можете заставить его в Excel. Вы можете разрешить браузеру обрабатывать его в зависимости от того, как он настроен для этого, или вы можете попытаться заставить его загрузить файл и позволить пользователю открывать его со своего рабочего стола. Чтобы форсировать загрузку, выполните поиск «принудительная загрузка» и ваш язык на стороне сервера (PHP, ASP.NET, JSP и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...