Javascript }) }) 您是否正在尝试自动化某些东西?你能举个更好的例子吗?我不敢问这个问题。谢谢你这么做,谢谢你这么简洁。:)嗨,麦克,这是很棒的代码!您是否了解如何将此表转换为可提交表单?这取决于您要提交的表单。我会用它制作一个字符串化的json,并将其作为单个字

Javascript }) }) 您是否正在尝试自动化某些东西?你能举个更好的例子吗?我不敢问这个问题。谢谢你这么做,谢谢你这么简洁。:)嗨,麦克,这是很棒的代码!您是否了解如何将此表转换为可提交表单?这取决于您要提交的表单。我会用它制作一个字符串化的json,并将其作为单个字,javascript,html,forms,excel,Javascript,Html,Forms,Excel,}) }) 您是否正在尝试自动化某些东西?你能举个更好的例子吗?我不敢问这个问题。谢谢你这么做,谢谢你这么简洁。:)嗨,麦克,这是很棒的代码!您是否了解如何将此表转换为可提交表单?这取决于您要提交的表单。我会用它制作一个字符串化的json,并将其作为单个字段发布到服务器上。顺便说一下,这也适用于Word表(我们正在尝试转换的用户遗留的“表单”之一)。谢谢。这是一个绝对糟糕的解决方案。我来到这个线程,因为我目前正在做这件事,它是难以置信的容易出错。Excel有时以整数形式输出数字,有时以浮点数形式

}) })

您是否正在尝试自动化某些东西?你能举个更好的例子吗?我不敢问这个问题。谢谢你这么做,谢谢你这么简洁。:)嗨,麦克,这是很棒的代码!您是否了解如何将此表转换为可提交表单?这取决于您要提交的表单。我会用它制作一个字符串化的json,并将其作为单个字段发布到服务器上。顺便说一下,这也适用于Word表(我们正在尝试转换的用户遗留的“表单”之一)。谢谢。这是一个绝对糟糕的解决方案。我来到这个线程,因为我目前正在做这件事,它是难以置信的容易出错。Excel有时以整数形式输出数字,有时以浮点数形式输出,有时以字符串形式输出。此外,用户场景也适用,您需要从不可靠的来源粘贴数据,例如您的银行,其xls/csv文件中充满了需要手动筛选的垃圾。我一直在处理类似的问题,值得注意的是,粘贴到文本框,你松开了新线。粘贴到文本区域时,您可以保留它们。出于实际原因,您可以将此答案作为一个片段,以备将来使用。如果单元格中有新行,则会断开。只需对此做一个简短的说明-效果很好,但复制数据时Excel会添加一个尾随行,因此您最终会得到一个空的
td
。Just FYIthis是一个快速但短期的解决方案,如果我的一个单元格中包含jsbin,该怎么办?jsbin对我来说没有预期的效果(Win 7上的Firefox 42,Excel 2013)。自从你发布了这个答案后,有什么重要的改变了吗?这使得这个方法不再有效了?在浏览器控制台中,我看到文本/纯文本内容被记录,但文本/html内容是空的。这可以在windows和excel上使用chrome,也可以在ubuntu和libreOffice上使用chrome。最好的解决方案是IMO,因为它保留了原始表单的所有格式。这是一个非常相关的答案,但需要更多的细节。这是我对这个答案的补充,但在粘贴事件中,自动表格立即显示:基本上,它模拟了“后粘贴”事件。事实上,我发现只有从ONLYOFFICE软件的电子表格中复制时才会发生这种情况。隐马尔可夫模型。。把这个留在这里,以防有人无意中发现。
var data = $('input[name=excel_data]').val();
var rows = data.split("\n");

var table = $('<table />');

for(var y in rows) {
    var cells = rows[y].split("\t");
    var row = $('<tr />');
    for(var x in cells) {
        row.append('<td>'+cells[x]+'</td>');
    }
    table.append(row);
}

// Insert into DOM
$('#excel_table').html(table);
<html>
<head>
    <title>excelToTable</title>
    <script src="../libs/jquery.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
    <textarea>a1    a2  a3
b1  b2  b3</textarea>
    <div></div>
    <input type="button" onclick="convert()" value="convert"/>
    <script>
        function convert(){
            var xl = $('textarea').val();
            $('div').html( 
                '<table><tr><td>' + 
                xl.replace(/\n+$/i, '').replace(/\n/g, '</tr><tr><td>').replace(/\t/g, '</td><td>') + 
                '</tr></table>'
            )
        }
    </script>
</body>
</html>
$postrequest = trim($_POST[request]);
$dirty = array("\n", "\t");
$clean = array('</tr><tr><td>', '</td><td>');
$request = str_replace($dirty, $clean, $postrequest);
event.clipboardData.getData('text/html')
<p>Paste excel data here:</p>  
<textarea name="excel_data" style="width:250px;height:150px;"></textarea><br>
<input type="button" onclick="javascript:generateTable()" value="Genereate Table"/>
<br><br>
    <p>Table data will appear below</p>
<hr>
<div id="excel_table"></div>
function generateTable() {
    var data = $('textarea[name=excel_data]').val();
    console.log(data);
    var rows = data.split("\n");

    var table = $('<table />');

    for(var y in rows) {
    var cells = rows[y].split("\t");
    var row = $('<tr />');
    for(var x in cells) {
        row.append('<td>'+cells[x]+'</td>');
    }
    table.append(row);
}

// Insert into DOM
$('#excel_table').html(table);
}
function excelToObjects(stringData){
    var objects = [];
    //split into rows
    var rows = stringData.split('\n');

    //Make columns
    columns = rows[0].split('\t');

    //Note how we start at rowNr = 1, because 0 is the column row
    for (var rowNr = 1; rowNr < rows.length; rowNr++) {
        var o = {};
        var data = rows[rowNr].split('\t');

        //Loop through all the data
        for (var cellNr = 0; cellNr < data.length; cellNr++) {
            o[columns[cellNr]] = data[cellNr];
        }

        objects.push(o);
    }

    return objects;
}
function removeExtraTabs(string) {
  return string.replace(new RegExp("\t\t", 'g'), "\t");
}

function generateTable() {
  var data = removeExtraTabs($('#pastein').val());
  var rows = data.split("\n");
  var table = $('<table />');

  for (var y in rows) {
    var cells = rows[y].split("\t");
    var row = $('<tr />');
    for (var x in cells) {
      row.append('<td>' + cells[x] + '</td>');
    }
    table.append(row);
  }

  // Insert into DOM
  $('#excel_table').html(table);
}

$(document).ready(function() {
  $('#pastein').on('paste', function(event) {
    $('#pastein').on('input', function() {
      generateTable();
      $('#pastein').off('input');
    })
  })
})