Выберите, скопируйте из IE и вставьте в Excel - PullRequest
1 голос
/ 04 апреля 2011

Итак, основной вопрос в том, как сделать так, чтобы таблицу можно было легко скопировать из IE в Excel или OpenOffice calc.Страница находится здесь: http://tuudik.lohv.eu/Asjad/EURXML/

Таблица создается динамически с помощью кода PHP.Там есть кнопка с текст "Вали табель!"Это означает, что он выбирает таблицу.Затем я хочу скопировать его, например, используя CTRL + C и вставить его в электронную таблицу.

Каковы лучшие варианты?Должен ли я создать скрытый div, который затем имеет те же данные, что и в таблице, но отформатирован другим способом?

Кроме того, кто-нибудь знает, как сделать «Vali kõik!»кнопка работает так, что бы она автоматически копировала содержимое в буфер обмена?

Ответы [ 4 ]

1 голос
/ 04 апреля 2011

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

, а затем установить заголовки для его загрузки ... такпередача дополнительного параметра 'format' в ваш скрипт может определить формат вывода как HTML XLS.Библиотека PHPExcel позволяет генерировать файлы XLS на чистом PHP.Ссылка на вашей HTML-странице может затем предложить возможность воссоздать вывод непосредственно в виде файла XLS для загрузки, а не копирования и вставки.
0 голосов
/ 13 сентября 2017

Мне нужен был способ скопировать html-таблицу и вставить ее в excel.Я использовал комбинацию техник.Сначала я добавил этот код, чтобы автоматически копировать данные в буфер вставки клиентского ПК.

Как скопировать в буфер обмена в JavaScript?

// Copies a string to the clipboard. Must be called from within an 
// event handler such as click. May return false if it failed, but
// this is not always possible. Browser support for Chrome 43+, 
// Firefox 42+, Safari 10+, Edge and IE 10+.
// IE: The clipboard feature may be disabled by an administrator. By
// default a prompt is shown the first time the clipboard is 
// used (per session).
function copyToClipboard(text) {
    if (window.clipboardData && window.clipboardData.setData) {
        // IE specific code path to prevent textarea being shown while dialog is visible.
        return clipboardData.setData("Text", text); 

    } else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
        var textarea = document.createElement("textarea");
        textarea.textContent = text;
        textarea.style.position = "fixed";  // Prevent scrolling to bottom of page in MS Edge.
        document.body.appendChild(textarea);
        textarea.select();
        try {
            return document.execCommand("copy");  // Security exception may be thrown by some browsers.
        } catch (ex) {
            console.warn("Copy to clipboard failed.", ex);
            return false;
        } finally {
            document.body.removeChild(textarea);
        }
    }
}

Затем я создал строку для копирования.Разделяйте значения ячеек табуляцией \ t и разделяйте строки новой строкой \ n.см. пример ниже.

Я создаю строку данных копирования с помощью PHP.

//-- Create data for a single table row
//-- We needed to escape single quotes for HTML and javascript
$copy_data = str_replace("'","\'",$col1."\t".$col2."\t".$col3);

//-- Create data for a multi rows
//-- Separate multiple rows by \n but needs to be escaped so use \\n
$copy_data = str_replace("'","\'",$col1."\t".$col2."\t".$col3."\\n".$col1."\t".$col2."\t".$col3."\\n".$col1."\t".$col2."\t".$col3);

Затем помещаю ее в кнопку копирования на веб-странице.

<a href="#" onclick="copyToClipboard('<?=$copy_data?>')">Copy</a>

Затем вы нажимаете на ссылку «Копировать», чтобы получить данные в буфер копирования.Затем перейдите в Excel и щелкните ячейку, в которую вы хотите вставить данные, затем выполните вставку.

0 голосов
/ 04 апреля 2011

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

.

(я тестировал на использовании Excel 2010, но 2007 год похож и доступен в 2003 году в несколько ином виде)

Из меню Данные / Получить внешние данные / Из Интернета

открывает форму:

  • вставьте адрес; (например, http://bit.ly/Kurss) и нажмите Go
  • отображается веб-страница
  • прокрутите вниз к нужному столу
  • выберите его с маленькой желтой стрелкой
  • Нажмите Импорт

Вуаля, данные в Excel, как неформатированные данные из фонового запроса!

Затем, когда вам нужно обновить данные, просто нажмите Обновить

0 голосов
/ 04 апреля 2011

По моему опыту, копирование со страниц HTML лучше всего выполнять через текстовый редактор, который не имеет форматирования. Таким образом, содержимое обычно разделяется каким-либо образом (обычно на вкладке), что значительно облегчает вставку в электронную таблицу.

  • Копировать таблицу из браузера
  • Вставить в блокнот, выбрать, скопировать снова
  • Вставить в электронную таблицу

Может не дать прямого ответа на ваш вопрос, но если вы каким-то образом сможете сделать данные копируемыми в виде простого текста с разделителем табуляции (как в скрытом элементе div или чем-то еще) - вы, вероятно, добьетесь большего успеха при вставке их в электронные таблицы, которые поддерживают все виды форматирование.

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