如何使用JavaScript将HTML用户输入数据存储到Excel中

8xiog9wr  于 2023-03-31  发布在  Java
关注(0)|答案(4)|浏览(196)

我需要用JavaScript创建HTML页面,可以直接将用户信息存储到Excel中。信息可以包含用户输入字段,如:
1.名字(数据类型:文本)
1.姓氏(数据类型:文本)
我已经尝试了下面的代码存储值到CSV,但我不知道如何在Excel工作表中存储值。

<hrml>
  <head>
     <script language="javascript">
        function WriteToFile(passForm) {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var fileLoc = "D:\\sample.csv";
        var file  = fso.OpenTextFile(fileLoc, 8, true,0);
        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">
    Type your last name: <input type="text" name="LastName" size="20">
    <input type="button" value="submit" onclick="WriteToFile(this.form)">
 </form>
</body>
</html>

请帮助我这个“如何使用JavaScript将HTML输入数据写入Excel”
先谢谢你了。

9wbgstp7

9wbgstp71#

你可以在你的javascript代码中使用ActiveXObject()创建一个自动化对象(在windows中)。例如:

var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
// a text is stored in the first cell  
ExcelSheet.ActiveSheet.Cells(1,1).Value = "Texto1";
// the sheet is saved
ExcelSheet.SaveAs("D:\\TEST.XLS");
// close Excel with the Quit() method of the Application object 
ExcelSheet.Application.Quit();
gkl3eglg

gkl3eglg2#

你可以用你的数据生成一个分号分隔的var,并使用window.open函数,下面是一个例子:

var data = '';
data += $('#Name').val() + ';'
data += $('#EmployeeID').val();
data += '\r\n';
window.open( "data:application/vnd.ms-excel;charset=utf-8," + encodeURIComponent(data));

你也可以生成一个格式化的html来代替分号分隔的文本。

iswrvxsc

iswrvxsc3#

这一个使用ActiveX对象写入您的PC上的文件。它将只在IE上工作。这是默认情况下禁止在浏览器。
以下是“正常”用例,以及如何在所有浏览器中完成此操作:
1.获取表单数据(JavaScript)
1.向服务器发出包含数据的 AJAX 请求(JavaScript)
1.服务器应该有一些逻辑来获取数据并将其写入文件(Excel文件)(JavaScript,PHP,Java,C#,1000s more....)
如果你想让它在任何地方都能工作,你也应该花点力气创建一些服务器。你可以在本地机器上启动服务器,这样你就可以在本地保存文件了

9vw9lbht

9vw9lbht4#

//This code appends the names of each field along with the values of 
//each form element

// you can create a form with an export button at the end and 
//call this function onclick

function exportToExcel() {
  // Get the form data
  var formData = document.forms["myForm"].elements;
  var csvData = [];
  
  // Get the field names
  var fieldNames = [];
  for (var i = 0; i < formData.length; i++) {
    fieldNames.push(formData[i].name);
  }
  
  // Add the field names to the CSV data
  csvData.push('"' + fieldNames.join('","') + '"');

  // Loop through the form fields and build the CSV data
  var row = [];
  for (var i = 0; i < formData.length; i++) {
    var fieldValue = formData[i].value;
    fieldValue = fieldValue.replace(/"/g, '""');
    row.push('"' + fieldValue + '"');
  }
  
  // Add the row to the CSV data
  csvData.push(row.join(","));

  // Convert the CSV data to a string and encode it for download
  var csvString = csvData.join("\n");
  var encodedUri = encodeURI("data:text/csv;charset=utf-8," + csvString);

  // Create a temporary link element and click it to trigger the download
  var link = document.createElement("a");
  link.setAttribute("href", encodedUri);
  link.setAttribute("download", "form-data.csv");
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

相关问题