Рейтинг:
1
Niral Soni
Надеюсь, это может вам помочь -
<html>
<head>
<script language="javascript">
function WriteToFile(passForm) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fileLoc = "D:\\sample.csv";
var file = fso.CreateTextFile(fileLoc, true);
file.writeline(passForm.FirstName.value + ',' +
passForm.LastName.value);
file.Close();
alert('File created successfully at location: ' + fileLoc);
}
</script>
</head>
<body>
<p>create a csv file with following details -</p>
<form>
Type your first name: <input type="text" name="FirstName" size="20"><br>
Type your last name: <input type="text" name="LastName" size="20"><br>
<input type="button" value="submit" onclick="WriteToFile(this.form)">
</form>
</body>
</html>
</br></br></html>
Кроме того, обратитесь к этой ссылке
Обработка файлов на стороне клиента с помощью Javascript[
^] для дальнейшего ознакомления.
С уважением,
Нирал Сони
enhzflep
Отличный ответ, мой +5
В частности, scrrun.dll (реализует сценарий.FileSystemObject object) устанавливается по умолчанию, так как по крайней мере XP SP1 - это безопасный и дешевый способ выполнить эту работу. :)
Рейтинг:
1
OriginalGriff
То, что вам не нравится ответ Вуденлегнамедсмита, не мешает ему быть правильным.
Натыкаясь на вопрос, чтобы попытаться получить ответ, который вам больше нравится, вы не измените работу компьютеров!
Итак, повторю ответ: Javascript не имеет доступа к жесткому диску на клиентском ПК, как и код, за которым он работает на сервере. Соображения безопасности запрещают это.
Вы не можете записать файл Excel или CSV (или текстовый файл, или PDF-файл, или любой другой тип файла) непосредственно на компьютер - все, что вы можете сделать, это записать его на сервер и предложить его для загрузки и сохранения клиенту - даже тогда у вас нет никакого контроля над тем, где клиент хранит данные или даже что он загружает их.
Как говорит WoodenLegNamedSmith, это можно сделать с помощью элемента управления ActiveX, но шансы получить один из них, установленный на любом компьютере в наши дни, невелики.
enhzflep
Извини, старина, но я не согласен с тобой по двум пунктам.
1. Пост был отредактирован другим пользователем, а не ОП..
2. я думаю, что большинство людей в наши дни не стали бы дважды думать об установке MS Office - вот вам и ваш ActiveX.
Если бы ОП погуглил чтение / запись excel с помощью javascript, он получил бы довольно много результатов, которые облегчили бы работу.
Но в остальном-хорошие моменты. Мой 4.
Espen Harlinn
Это достаточно распространенный, чтобы отключить выполнять сценарии элементов ActiveX по соображениям безопасности ...
OriginalGriff
Я думаю (но я могу ошибаться), что это настройка по умолчанию в большинстве браузеров сейчас. Chrome, например, требует установки IE для работы ActiveX вообще!
Espen Harlinn
Я думаю, что вы правы, и я уже давно не видел корпоративной среды, которая позволяла бы создавать сценарии activex в браузере.
Рейтинг:
1
Member 13320618
Вы также можете создать файл cookie с неопределенным сроком действия и использовать его в качестве псевдобазы данных для создания блока текста в формате CSV, который затем может быть использован для создания текстового файла. Затем вы можете либо перезагружать файл cookie каждый раз, если можете гарантировать сохраняемость, либо анализировать сохраненный CSV-файл при локальном открытии веб-страницы. Это должно помочь вам начать работу:
Код взят из: Javascript: создание и сохранение файла-переполнение стека[^]; кредит: Awesomeness01
function download(text, name, type) {
var a = document.getElementById("a");
var file = new Blob([text], {type: type});
a.href = URL.createObjectURL(file);
a.download = name;
}
<a href="" id="a">click here to download your file</a>
<button onclick="download('file text', 'myfilename.txt', 'text/plain')">Create file</button>
CHill60
Неплохой ответ ... но опоздал на 5 лет!