■No22528 (おさむ さん) に返信
> ・クライアント側のExcelから縦横のマトリクスをコピーし、同じように並べた画面上のテキストボックスへのペーストを行ってもらうclipboardからのデータ移植。
クライアント側のイメージコード。環境によっては、初回の貼り付け時に
『この Web ページがクリップボードにアクセスするのを許可しますか?』
といった警告がでる可能性があります。
<script>
function fnPaste()
{
fnClear();
var tRows = Table1.tBodies[0].rows;
var data = window.clipboardData.getData("Text");
var rows = data.split("\r");
var maxRow = ((rows.length > tRows.length)?tRows:rows).length;
for(var r = 0 ; r < maxRow; r++)
{
var tCells = tRows[r].cells;
var cells = rows[r].split("\t");
var maxCell = ((cells.length + 1) > tCells.length) ? tCells.length : cells.length + 1;
for(var c = 1; c < maxCell; c++)
{
tCells[c].firstChild.value = cells[c-1];
}
}
event.cancelBubble = true;
return event.returnValue = false;
}
function fnClear()
{
var tRows = Table1.tBodies[0].rows;
for(var r = 0 ; r < tRows.length; r++)
{
var tCells = tRows[r].cells;
for(var c = 1; c < tCells.length; c++)
{
tCells[c].firstChild.value = "";
}
}
}
</script>
<table id="Table1" onpaste="fnPaste()">
<thead>
<tr><th><button onclick="fnClear()">消</button></th><th>A</th><th>B</th><th>C</th></tr>
</thead>
<tbody>
<tr><th>1</th><td><input></td><td><input></td><td><input></td></tr>
<tr><th>2</th><td><input></td><td><input></td><td><input></td></tr>
<tr><th>3</th><td><input></td><td><input></td><td><input></td></tr>
<tr><th>4</th><td><input></td><td><input></td><td><input></td></tr>
<tr><th>5</th><td><input></td><td><input></td><td><input></td></tr>
</tbody>
</table>