Как получить электронную таблицу для открытия Excel вместо окна браузера?

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

Ответ 1

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

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

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

Ответ 2

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

application/vnd.ms-excel    xls

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

Ответ 3

AFAIK вы не можете сделать это с помощью JavaScript. Если у вас есть какой-то язык сценариев на стороне сервера, вы можете изменить заголовок, чтобы принудительно загрузить.

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

Вы не можете, так как это зависит от клиентской машины.

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

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

Ответ 10

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

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

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

Еще одна цитата из сайта: "Чтобы обеспечить безопасность, LaunchinIE необходимо тщательно настроить на стороне клиента, из-за этого ограничения он подходит только для использования внутри сети".

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

Ответ 11

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

  • Щелкните правой кнопкой мыши по кнопке [СТАРТ] и выберите "Исследуйте, чтобы открыть окно проводника Windows".
  • В меню выберите Инструменты\Параметры папки...
    • Выберите вкладку "Типы файлов" и прокрутите список файлов.
    • Щелкните левой кнопкой мыши, чтобы выделить расширение XLS Microsoft Excel Worksheet и нажмите кнопку "Дополнительно".

  • В окне "Редактировать тип файла" снимите флажок "Обзор в том же окне".

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

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