利用“contentEditable” + jQuery 批量更新数据

     最近在项目中碰到这样的一种需求:通过Web 界面将Excel(Word/网页)中的二维表格数据保存到数据库中。方法当然有很多,这里给出我的一种解决方案:通过Copy -> Paste -> 保存;供大家拍砖。

复制/粘贴数据,进行测试(代码在IE6、Firefox 3.06中测试通过)

1234567
test1test2test3test4 test5test6test7
测试1测试2 测试3 测试4 测试5测试6测试7
ok1ok2ok3ok4ok5ok6ok7
aabbccddeeffgg
这里仅改变表格内文字的颜色,在实际项目中可以灵活运用。

 

 

 1 < script language = " javascript "  type = " text/javascript "  src = " http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js " >< / script>
 2 < script language = " javascript "  type = " text/javascript " >
 3           // 对表格进行重新格式化
 4 ExpandedBlockStart.gifContractedBlock.gif          function  formatTable(target)  {
 5            var panel = $(target);
 6ExpandedSubBlockStart.gifContractedSubBlock.gif            if (panel.children("table").size() == 1{
 7                var table = panel.children("table:first");
 8                if (table.attr("formatted")=='true')
 9                    return;
10                var rows = table.find("tbody>tr");
11                var tableHtml = new Array();
12ExpandedSubBlockStart.gifContractedSubBlock.gif                for (var rowIndex = 0; rowIndex < rows.size(); rowIndex++{
13                    tableHtml[rowIndex] = "<tr style='background-color:White;'><td width='40' style='padding:2px;'>" + (rowIndex + 1+ "</td>";
14                    var cells = (rows.eq(rowIndex)).children("td");
15                    var cellsHtml = new Array();
16ExpandedSubBlockStart.gifContractedSubBlock.gif                    for (var columnIndex = 0; columnIndex < cells.size(); columnIndex++{
17                        cellsHtml[columnIndex] = "<td style='padding:2px;'>";
18                        cellsHtml[columnIndex] += cells.eq(columnIndex).text();
19                        cellsHtml[columnIndex] += "</td>";
20                    }

21                    tableHtml[rowIndex] += cellsHtml.join("");
22                    tableHtml[rowIndex] += "</tr>";
23                }

24                panel.html("");
25                panel.html("<table formatted='true' cellspacing='1' cellpadding='0' style='background-color:#ECE9D8; font-size:12px; font-family: Tahoma,Verdana,\'宋体\''><tbody>" + tableHtml.join(""+ "</tbody></table>");
26            }

27        }

28 ExpandedBlockStart.gifContractedBlock.gif        $( function ()  {
29ExpandedSubBlockStart.gifContractedSubBlock.gif            $("DIV#GridHolder").css("border""1px solid #7F9DB9").css("padding""15px").attr("contentEditable"true).blur(function() { formatTable(this); });
30
31ExpandedSubBlockStart.gifContractedSubBlock.gif            $("#test").click(function() {
32ExpandedSubBlockStart.gifContractedSubBlock.gif                $("DIV#GridHolder tr").each(function() {
33                     //获取一行数据
34                    var tr = $(this);
35                     //这里仅改变数据的颜色。在实际项目中可以进行数据的完整性校验,然后集中提交或者逐行提交。
36                    tr.css("color""red");
37                }
);
38            }
);
39        }
);
40      < / script>
41 < p > 粘贴数据,进行测试: < / p>
42      < input type = " button "  value = " 保存 "  id = " test "   / >
43      < div id = " GridHolder " >< / div>
44

转载于:https://www.cnblogs.com/assembly/archive/2009/02/23/1396422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值