Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2015, 03:04
Новичок на форуме
Отправить личное сообщение для STRATEG Посмотреть профиль Найти все сообщения от STRATEG
 
Регистрация: 29.01.2015
Сообщений: 1

Создание excel средствами только javascript
Подскажите пожалуйста, возможно ли создать excel документ (или CSV) средствами только javascript, без использования сервера?

А теперь чуть подробнее:
На странице средствами javascript создаётся таблица, вот её и надо сохранить в excel, но ввиду ограниченности возможностей сервера, что - либо делать через него не могу.
Через ActiveX тоже не вариант.


P.S. Вообще представлял себе это, как генерацию некоторого виртуального файла (по сути массив байт) с последующей передачей браузеру для работы, как если бы происходило обычное скачивание файл.
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2015, 05:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

<script>
var csv = '1; foo\n2; bar\n3; русский';
var name = 'filename';
document.write(
  '<a href="data:text/csv;charset=utf-8,',
  encodeURIComponent('\ufeff' + csv), //utf8 bom(чтоб эксель понял кодировку) + строка 
  '" download="' + name + '.csv">' + name + '</a>');
</script>
В простом случае примерно так.
Если файл очень большой - смотреть в сторону Blob.
Если нужен IE - base64, а для старых и ActiveX.
Если надо можно и полноценный excel файл сделать, только весь формат вручную собирать придётся(хотя мож уже и есть какя библиотека на просторах тырнета).
__________________
29375, 35

Последний раз редактировалось Aetae, 13.03.2015 в 05:57.
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2015, 05:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В рамках HTML5 можно хранить в локальном хранилище:

var csv = [[1,2,3],[4,5,6],[7,8,9]]
//сохранить в хранилище
localStorage.csv = JSON.stringify(csv);
//получить из хранилища
b = JSON.parse(localStorage.csv)
alert(JSON.stringify(b))


Для браузеров не поддерживающих локальное хранилище можно в cookie записать, но с ограничением по размеру.

А чем ограничен сервер в возможностях?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно-ли только силами JavaScript создать интернет-магазин? Forgott Общие вопросы Javascript 36 23.08.2016 07:57
Решение задачи на оптимум средствами JavaScript. Behappy1113 Работа 0 03.03.2015 10:01
Screenshot определенной части экрана средствами javascript dmivasant Общие вопросы Javascript 0 09.03.2014 16:37
макрос для Excel в javascript klicken Internet Explorer 13 06.07.2012 14:33
Сохранение данных на стороне клиента средствами Javascript baal1988 Events/DOM/Window 4 24.08.2008 21:32