Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Javascript выгрузка таблицы в excel

Javascript выгрузка таблицы в excel

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Блог о Frontend-разработке, ботоводстве, iMacros + Javascript

Исследование различных веб-технологий, математических алгоритмов и проектирование веб-приложений.

Рубрики

Комменты

  • Наталья к записи [Урок 17] . Копирование, удаление и переименование папок и файлов с помощью iMacros+JS
  • Наталья к записи [Урок 17] . Копирование, удаление и переименование папок и файлов с помощью iMacros+JS
  • Натали к записи [Урок 9] . Чтение и запись txt-файлов в iMacros. Разбираем говнокод и смотрим «Best Practice».
  • Натали к записи [Урок 9] . Чтение и запись txt-файлов в iMacros. Разбираем говнокод и смотрим «Best Practice».
  • InfSub к записи [Урок 9] . Чтение и запись txt-файлов в iMacros. Разбираем говнокод и смотрим «Best Practice».

[Урок 10] . Разбираем формат CSV. Грамотное чтение и запись таблиц Excel(без !DATASOURCE).

В прошлом уроке мы с вами познакомились с грамотными способами чтения и записи файлов в iMacros. Сегодня мы пойдем немного дальше и будем рассматривать формат табличного представления данных CSV. От обычных текстовых файлов их отличает наличие спецификации, то есть четких правил, по которым они должны быть построены. Соблюдение данных правил открывает нам большие возможности, например, такие файлы можно будет открывать в других редакторах, использовать с различным программным обеспечением, которое поддерживает их.

Структура формата CSV

CSV(Comma-Separated Values) — буквально переводится, как «значения, разделенные запятыми». Это текстовый формат для представления табличных данных.

Каждая строка — это одна строка таблицы.
Разделителем (англ. delimiter) значений колонок является символ запятой «,». Однако на практике часто используются другие разделители, например «;»
Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками («). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.

Вы можете написать следующий текст и сохранить его в файл с расширением «csv»:

Такой файл легко открывается в Excel(или в OpenOffice) и все значения находятся в своих ячейках таблицы.

Читать еще:  Resize vba excel описание

Аналогично вы можете взять любую экселевскую таблицу(с расширениями .xls или .xlsx) и сохранить ее в формат CSV. Это очень простой формат и он не поддерживает формулы, вычисления и т.д., как полноценные форматы Excel. Однако, бывает очень удобно записывать данные из iMacros и потом обрабатывать их в Excel и, наоборот, брать информацию из Excel и использовать ее в своих скриптах.

Примечание: на самом деле у Excel есть еще XML-формат, который поддерживает формулы, стили оформления и большую часть функционала Excel, он текстовый, а не бинарный, как .xls или .xlsx. Тем не менее, он куда более сложный, нежели CSV и требует более глубоко понимания и навыков в кодинге. Мне доводилось генерировать при помощи JS вывод отчетов с перекрестными формулами в Excel, задача достаточно трудоемкая и времязатратная.

Чтение формата CSV и получение любой ячейки таблицы с помощью iMacros и Javascript

В первом и в прошлом уроках я ругал стандартные возможности iMacros по работе с таблицами. Я понимаю, что они добавили !DATASOURCE и прочую нечисть, с крайне урезанным функционалом для простых пользователей, чтобы сделать жизнь обывателя проще. Но, получилось совсем наоборот. Не стоит отчаиваться, сегодня я с вами поделюсь своим решением, которое позволит вам манипулировать таблицами, как вам вздумается.

Для загрузки файла в переменную, мы используем код для чтения файла из прошлого урока:

Замечательно! Мы получим содержимое файла в виде текста. Это не очень удобно, поэтому преобразуем его в двумерный Javascript-массив.

Вот такой массив я хочу видеть в результате:

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

Парсинг формата CSV

На первый взгляд может показаться, что мы можем тупо использовать 2 раза метод split(), поскольку текст мы можем разбить на массив строк при помощи split(‘rn’) , а строку на ячейки при помощи split(‘,’) , поскольку в качестве разделителя у нас используется запятая. Это не совсем так, если у нас в некоторых ячейках будет текст, содержащий в себе запятые, наш алгоритм будет работать неправильно.

Давайте добавим немного запятых в исходные данные(test.csv):

На самом деле ситуаций, когда такой подход со split() не сработает, может быть великое множество, тут и кавычки разных видов, и экранированные символы и т.д. На помощь нам придет один очень популярный скрипт для парсинга CSV в массив.

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

Итоговый скрипт чтения и парсинга файла формата CSV для iMacros+JS:

В консоли мы видим аккуратно распарсенный массив с нашей таблицей.

Сохранение двумерного Javascript-массива в CSV в iMacros

Считывать содержимое csv-файлов мы научились. Отсюда возникает вопрос, а как же выполнить обратное преобразование массива в текст? На самом деле, тут нету ничего сложного.

Давайте воспользуемся следующей функцией:

Важное примечание: CSV-файлы необязательно должны использовать запятую в качестве разделителя, в большей части мира используется точка с запятой(;).
Excel 2016 корректно работает с вашими региональными настройками и использует тот разделитель, который указан в панели управления в Настройках региона->Дополнительные параметры->Разделитель элементов списков . В Excel 2010 на английской винде, у меня по умолчанию стояла запятая в качестве разделителя, вы его можете поменять. Поэтому, если вдруг вы сгенерировали CSV-файл, а он у вас в Excel открылся в одной ячейке, первым делом проверьте какие разделители вы используете и какие по умолчанию использует ваша операционная система.

Пишите ваши вопросы, предложения и замечания в комментариях!

Множество различных jQuery примеров , элементы CSS
и большое количество других инструментов для Вашего сайта !

Подборка самых популярных WordPress плагинов для любого сайта.

Здесь вы сможете скачать различные jQuery скрипты для любых проектов.

Бесплатно скачать CSS3 наработки с различными эффектами анимации.

Можно скачать файлы HTML5 с современными возможностями разработки.

Множество различных free PSD объектов для WEB-дизайна.

Колекция различных элементов form jQuery для вашего сайта.

Бесплатно скачать иконки для сайта в форматах PSD, PNG и так далее.

Коллекция всегда обновляющихся модальных окон на jQuery.

Разные примеры jQuery validate собраны в одном месте сайта.

Симпатичные варианты реализации ваших jQuery gallery.

Большой сборник широкоформатных и адаптивных jQuery slider`ов.

Ишите примеры реализации jQuery scroll? Это то, что вам нужно.

Красивые и динамичные всплывающие подсказки на jQuery и CSS3.

Читать еще:  Основные команды excel

Интересные материалы на тему веб разработок, главные новости.

Подобрка плагинов Javascript, библиотек, фреймворков и т.д.

Коллекция потрясающих примеров анимации для вашего сайта.

Модернизация элементов форм, создание систем автозаполнения

Плагины для выбора и настройки даты и времени в формах

Предзагрузчики, анимация загрузки, перлоадеры и т.д.

Компоненты, содержащие в себе реализацию параллакс-эффекта.

Создание вкладок, оформление списков в удобную навигацию.

Все, что касается таблиц с данными: фильтр, сортировка и т.д.

Наработки SVG-графики и наложение на нее анимации. Просто красиво.

Отрисовка элементов на веб-странице с помощью html5 canvas.

Примеры элементов, которые реагируют при наведении на них.

Плагины для фото и видео галерей, способные приблежать контент.

Кнопки. Создание красивы и незабываемых кнопок для сайта.

Все, что касается сортировки данных на странице. Плагины html5.

Выборка данных. Множество примеров jQuery select.

Различные способы создания красивого и эффектного меню для сайта.

Дерево элементов. Построение множественных списков на странице.

Примеры объектов в трехмерном пространстве с помощью CSS3 и jQuery.

ExporttoExcel — Экспорт HTML файлов в Excel

Скачать

Источник

Легкий и простой плагин jQuery, который позволит вам экспортировать HTML документы в Excel. Скачать плагин бесплатно и узнать подробности можно по ссылкам.

Смотрите также:

SEO-продвижение

Автоматическое продвижение сайта в TOP.

Если Вы нашли ошибку в тексте, пожалуйста, выделите область и нажмите Ctrl + Enter.

Последняя версия jQuery:

Небольшое руководство по тому, как скачать самую актуальную версию библиотеки jQuery, а также рекомендации по подключению скрипта.

Как экспортировать таблицу html в excel с помощью javascript

Моя таблица находится в формате

Я нашел в интернете следующий код. Но это не работает, если я использую теги «thead» и «tbody»

10 Ответов

Работает только в Mozilla, Chrome и Safari..

Причина, по которой решение, которое вы нашли в Интернете, не работает, заключается в том, что строка начинается с var colCount . Переменная mytable имеет только два элемента-

а затем сделайте то же самое для тега

EDIT: я бы также настоятельно рекомендовал использовать jQuery. Это сократило бы это до:

Теперь, конечно, это даст вам некоторые проблемы с форматированием, но вы можете решить, как вы хотите, чтобы он был отформатирован в Excel.

EDIT: чтобы ответить на ваш вопрос о том, как это сделать для n числа таблиц, jQuery уже сделает это. Чтобы сделать это в raw Javascript, захватите все таблицы и затем измените функцию, чтобы иметь возможность передавать таблицу в качестве параметра. Например:

Затем измените значение function write_headers_to_excel() на function write_headers_to_excel(table) . Затем измените значение var myTableHead = document.getElementById(‘headers’); на var myTableHead = table.getElementsByTagName(‘thead’)[0]; . То же самое с вашим write_bodies_to_excel() или как вы хотите это настроить.

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

Проверить это. Я только что получил эту работу, и это кажется именно то, что вы пытаетесь сделать, а также.

2 функции. Один выбирает таблицу и копирует ее в буфер обмена, а второй записывает ее в excel en masse. Просто вызовите write_to_excel() и введите свой идентификатор таблицы (или измените его, чтобы принять его в качестве аргумента).

Проверьте https://github.com/linways/table-to-excel . Это оболочка для exceljs/exceljs для экспорта таблиц html в xlsx.

Это создает допустимый xlsx на стороне клиента. Также поддерживает некоторые основные стили. Проверьте https://codepen.io/rohithb/pen/YdjVbb для рабочего примера.

Я думаю, что вы также можете подумать об альтернативных архитектурах. Иногда что-то можно сделать по-другому, гораздо проще. Если производитель файла HTML-это вы, то вы можете написать обработчик HTTP для создания документа Excel на сервере (что гораздо проще, чем в JavaScript) и отправить файл клиенту. Если вы получаете этот файл HTML откуда-то (например, версию отчета HTML), то вы все еще можете использовать язык сервера, такой как C# или PHP, чтобы создать файл Excel все еще очень легко. Я имею в виду, что у тебя могут быть и другие способы. 🙂

Я попробовать это с jquery; используйте это и получайте удовольствие: D

используйте это в своем классе и называйте его с помощью $.printInExcel( ваш var );

Я бы предложил использовать другой подход. Добавьте кнопку на веб-странице, которая будет копировать содержимое таблицы в буфер обмена, с TAB символами между столбцами и новыми строками между строками. Таким образом, функция «paste» в Excel должна работать правильно, и ваше веб-приложение также будет работать со многими браузерами и на многих операционных системах (linux, mac, mobile), и пользователи смогут использовать данные также с другими электронными таблицами или программами обработки текстов.

Единственная сложная часть заключается в том, чтобы скопировать в буфер обмена, потому что многие браузеры одержимы безопасностью на этом. Решение состоит в том, чтобы подготовить данные, уже выбранные в textarea, и показать их пользователю в модальном диалоговом окне, где вы скажете пользователю Скопировать текст (некоторые должны будут ввести Ctrl-C, другие команду-c, другие будут использовать «long touch» или всплывающее меню).

Читать еще:  Excel rows count

Было бы лучше иметь стандартную функцию copy-to-clipboard, которая, возможно, запрашивает подтверждение пользователя. но, к сожалению, это не так.

Похожие вопросы:

Поскольку трудно иметь дело с разными стандартами в разных браузерах, я отказываюсь от попыток экспортировать таблицу html с помощью js или jQuery. Интересно, смогу ли я POST таблицу в html вернуть.

У меня есть около 5000 строк(tr) внутри таблицы HTML, каждая из которых имеет 10 столбцов (td). Теперь я пытаюсь экспортировать всю эту таблицу HTML в excel, используя следующий код jQuery: var test.

У меня есть таблица в формате HTML. IDNameMonthSavings 101RameshJanuary$100 102RamFeb$200 103RamnaMar$300

Tarlyun blog

Экспорт таблиц из Excel в HTML

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

Сказано — сделано. Недаром же мы программисты. Благо в Excel встроен язык VBA (Visual Basic for Applications). Последний раз я что-то программировал на нем в 2003 году (и выполнял схожую задачу, только экспорт был для форума в bbcode сводной таблицы по состоянию альянсовых артефактов в игре DS). Но «вспомнить все» не составило большого труда. Если вас интересует итоговый результат, можете скачать xlsm-документ (документ Excel 2007 XML, с макросами) в конце статьи.

Пара слов о самом VBA. VBA — интерпретируемый язык. Имеет поддержку в следующих продуктах:

  • Microsoft Office
  • AutoCAD
  • SolidWorks
  • CorelDRAW
  • и некоторые другие.

Описывать каждую строчку кода не имеет смысла, опишу лишь итоговый интерфейс и некоторые нюансы.

Интерфейс Excel-документа

Скорее всего при открытии документа вы получите предупреждение:

А теперь непосредственно сам интерфейс:

Блок № 1 содержит настройки для экспорта. Вы можете изменить наименование класса для таблицы, и наименование класса для раскраски четных рядов.

Блок № 2 — это кнопка экспорта. Для удобства пользователя весь сгенерированный HTML код помещается в текстовое поле на форме.

Блок № 3 — форма, которая появляется после нажатия на кнопку «Export». Содержит TextBox и Button, нажав на который происходит копирование сгенерированного текста в буфер обмена и закрытие формы.

Блок № 4 — это сама таблица. Таблица начинается с ячейки A6.

Нюансы при оформлении таблицы

В первой строке (ячейка А6) находится caption для таблицы.
Высота таблицы определяется по столбцу А. Начиная с ячейчки А7 скрипт просматривает все ячейки вниз, пока не найдет пустую ячейку. Обнаружив пустую ячейку скрипт считает что это конец таблицы, и запоминает значение в переменную iLastLine . Аналогично происходит определение ширины таблицы. Начиная с ячейки А7 скрипт просматривает все ячейки вправо, пока не найдет пустую ячейку. Значение о последнем столбце заносится в переменную iLastCol . Если вам необходимо вставить пустую ячейку в первую строку или первый столбец можете воспользоваться

Допускается использование горизонтального объединения ячеек. Скрипт корректно заменяет их на colspan.
Скрипт определяет такое форматирование ячеек, как: bold, italic, center.
Если скрипт находит пустую ячейку внутри таблицы, то производится подстановка &nbsp ;

Ограничения при оформлении таблицы

  • Не использовать вертикальное объединение ячеек
  • Не использовать горизонтальное объединение ячеек, выходящее за границу шапки

Комментарии к коду

В VBA было принято ставить первую букву согласно типу переменной. Поэтому iFirstLine — это переменная типа int , которая содержит номер первой строки таблицы. А sLine — переменная типа string , которая содержит текст текущего ряда.
В VBA нет некоторых простых функций, поэтому для проверки четности переменной добавляем немного магии:

Смысл этого заклинания в том, что мы делим переменную целочисленно и точно на 2. Если число четное, оно без остатка разделится на 2, значения совпадут и выражение будет TRUE.

Также стоит заострить внимание на магии с объединенными ячейками.

У каждой ячейки есть свойство MergeCells , которое определяет наличие объединения. Если мы обнаружили объединенную ячейку, значит мы можем узнать длину объединения (через свойство MergeArea.Count ) и сразу пропустить объединенные ячейчки (которые не содержат полезной информации).

Также стоит упомянуть о работе с объектами. Чтобы присвоить значению переменной объект (например ячейку) необходимо воспользоваться конструкцией:

Ссылка на основную публикацию
Adblock
detector