`
werwolf
  • 浏览: 93570 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Excel模拟程序(区域复制粘贴功能)

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 使用table input textarea 模拟excel的复制粘贴功能 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Robin.c">
<META NAME="Keywords" CONTENT="模拟excel">
<META NAME="Description" CONTENT="i love feiEr">
<style>
.tableNoArea {
 BORDER-RIGHT: #A52A2A 1px solid; 
 BORDER-LEFT: #A52A2A 1px solid; 
 BORDER-TOP: #A52A2A 1px solid; 
 border-Bottom : #A52A2A 1px solid; 
}
.tdNoArea {  
  BORDER-RIGHT: #A52A2A 1px solid; 
  BORDER-TOP: #A52A2A 1px solid; 
  BORDER-BOTTOM: #A52A2A 1px solid; 
  BORDER-LEFT: #A52A2A 1px solid; 
}
.table1 {
 BORDER-RIGHT: #A52A2A 1px solid; 
 BORDER-LEFT: #A52A2A 1px solid; 
 BORDER-TOP: #A52A2A 1px solid; 
 border-Bottom : #A52A2A 1px solid; 
}
.td1 {  
  BORDER-RIGHT: #A52A2A 1px solid; 
  BORDER-TOP: #A52A2A 1px solid; 
  BORDER-BOTTOM: #A52A2A 1px solid; 
  BORDER-LEFT: #A52A2A 1px solid;
  background-color:buttonface; 
}
.input_button{ 
 border-top:1px solid #A52A2A ;
 border-right:1px solid #A52A2A ;   
 border-bottom:1px solid #A52A2A ;
 border-left:1px solid #A52A2A ;
    background-color:#F0F8FF; 
}
.input_title{ 
 border-top:0px solid #A52A2A ;
 border-right:0px solid #A52A2A ;   
 border-bottom:0px solid #A52A2A ;
 border-left:0px solid #A52A2A ;
    background-color:buttonface; 
}
input{
 margin-bottom:0px;
 margin-left:0px;
 margin-right:0px;
 margin-top:0px;
 border-top:0px solid #A52A2A ;
 border-right:0px solid #A52A2A ;   
 border-bottom:0px solid #A52A2A ;
 border-left:0px solid #A52A2A ;
}
.input_on{ 
 margin-bottom:0px;
 margin-left:1px;
 margin-right:0px;
 margin-top:0px;
 border-top:0px solid #A52A2A ;
 border-right:0px solid #A52A2A ;   
 border-bottom:0px solid #A52A2A ;
 border-left:0px solid #A52A2A ;
    background-color:7CFC00; <!-- FFFFCC -->
}
.staCss{
 border-top:1px solid #A52A2A ;
 border-right:1px solid #A52A2A ;   
 border-bottom:1px solid #A52A2A ;
 border-left:1px solid #A52A2A ;
    background-color:#F0F8FF; 
 color:#000000;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
<!--
var strT ="";  //保存粘贴来的数据
var curObjId;  //当前单元的id
var tableName ="重点区域信息";//表名称
//左表头数组,包含项目名,从第二个元素开始是左表头值
var valueLeftArray =["区域/项目", "北京", "上海","天津", "重庆", "广州","秦皇岛", "衡水", "石家庄","沈阳", "大连"];
var valueTopArray =["家庭户", "集体户","人口数", "财政总收入(亿)", "经济波动幅度","林业", "水利", "旅游业","交通运输", "商业金融"];//上表头数组
function $(id){ return( document.getElementById(id));}
//状态栏显示内容
function opStaBar(value){
 $("staBar").innerText =value ;
}
//创建表头
function createTableName(valueName)
{
 //$("staBar").innerText = "此时状态--" + value ;
 if(valueName ==undefined){valueName="noName";}
 $("excelTil").innerHTML ="<center>" + valueName + "</center>";
}
//创建左表头
function createLeftHead(valueLeft)
{
 $("excelCon").innerHTML =" <TABLE style='border-collapse:collapse;table-layout:fixed;width:100%'><TR><TD class=\"td1\">" +valueLeft[0]+ "</TD></TR></TABLE>";
 var Temp ="<TABLE style='border-collapse:collapse;table-layout:fixed;width:100%'>";
 for(i=1;i<valueLeft.length;i++)
 {
  //alert(valueLeft.length );
  Temp += "<TR><TD class=\"td1\" width=\"148px\"><INPUT id=\"inputLeft" + i + "\" TYPE=\"text\" value=\"" + valueLeft[i] + "\" class=\"input_title\" readOnly=\"true\"></TD></TR>";
 }
 $("excelLeftHead").innerHTML =Temp +"</TABLE>";
}
//创建上表头
function createTopHead(valueTop)
{
 var Temp ="<TABLE style='border-collapse:collapse;table-layout:fixed;width:100%'><TR>";
 for(i=0;i<valueTop.length;i++)
 {
  Temp += "<TD class=\"td1\" id=\"tdTop" + (i+1) + "\" width=\"148px\">" +valueTop[i]+ "</TD>";
 }
 $("excelTopHead").innerHTML =Temp +"</TR></TABLE>";
}
//创建表格 ,id:表格"容器"的id  row-col:创建的表格行列数
function createTable(id,row,col)
{
 var strTable ="<table id=\"objTable\" class=\"tableNoArea\" style='border-collapse:collapse;table-layout:fixed;width:100%'>"; //表开始--表使用input输入框排列而成
 for(i=1; i<=row;i++)
 {
  strTable =strTable + "<tr id=\"TR" + i + "\" >"; //行开始   单元格id举例:CEll_2_5 代表第二行伍列
  for(j=1;j<=col;j++)
  {
   strTable =strTable + "<td id=\"TD" + j + "\" class=\"tdNoArea\">" +  "<input TYPE=\"text\" name=\"DataArea\" id=\"CELL_" + i + "_"+ j + "\" onfocus=\"this.className='input_on'\" onblur=\"this.className='input';cellLostFocus(this);\" onclick =\"setCurCellId(this);\"></td>" ;
  }  
  strTable =strTable + "</tr>"; //行结束 
 }
 $(id).innerHTML =strTable + "</table >"; //表结束
 
}
//将当前单元格id保存于curObjId中,(每当点击单元都调用此函数,更新变量)
function setCurCellId(ob)
{ 
 curObjId =ob.id
 setBgcolor(ob);
 opStaBar("此时激活的单元格id是:" + curObjId);
 
}
//设置单元格点击左表头上表头状态
function setBgcolor(ob)
{
 var curLoopRow =curObjId.split("_")[1]; //行数
 var curLoopCol =curObjId.split("_")[2]; //列数
 $("tdTop" + curLoopCol).style.backgroundColor='beige'; 
 $("inputLeft" + curLoopRow).style.backgroundColor='beige'; 
}
//表格失去焦点时事件
function cellLostFocus(ob)
{
 //this.className='input';
 var curLoopRow =curObjId.split("_")[1]; //行数
 var curLoopCol =curObjId.split("_")[2]; //列数
 $("tdTop" + curLoopCol).style.backgroundColor='buttonface'; 
 $("inputLeft" + curLoopRow).style.backgroundColor='buttonface'; 
}
// 启用粘贴快捷菜单项目,该项目在 DIV 上时默认也为无效
function fnBeforePaste()
{
 event.returnValue = false;
}
// 在 onpaste 中取消 returnValue 以便输入文本,该操作有默认的行为 
function fnPaste(id) 
{
 event.returnValue = false;
 $(id).innerText = window.clipboardData.getData("Text");
 strT =$(id).innerText;
 //alert($(id).innerText);
 fillToTable();   //填表
}
// 填表
function fillToTable()
{   
 if(curObjId ==undefined)
   {
  alert("***未选择起始单元格,默认为第一个单元格***");
  curObjId ="CEll_1_1";
   }
 var arrayTable, re, b, re2, rowCounter, colCounter ;  // 声明变量
 var re = /\r/g;      // 创建正则表达式模式 取得行(回车)
 var re2=/\t/g;      // 创建正则表达式模式  取得列(制表符)
    arrayTable = strT.split(re);   //将数据以行为单位装入数组
 rowCounter = arrayTable.length;  //表格行数
 colCounter = arrayTable[0].split(re2).length; //表格列数
 var curLoopRow =curObjId.split("_")[1]; //行数
 for(i=1;i<=rowCounter;i++)
 {
  var curLoopCol =curObjId.split("_")[2]; //列数
  
  //alert(curLoop +"列数");
  for(j=1;j<=colCounter;j++)
  {
   //alert(curLoop +"将填充列");
   var tempV =parseFloat(arrayTable[i-1].split(re2)[j-1]);
   if(isNaN(tempV)){tempV="";} //处理数据项是空白或空格的情况
   try{
    $("CEll_" + curLoopRow +  "_" + curLoopCol).innerText = tempV; 
    throw "粘贴区域越界";
   }
   catch(e)
   {
    //alert(e);
    opStaBar("警报:粘贴区域越界.");
   }
   curLoopCol++;
  
  }
  curLoopRow++;
 }
 }
//从数据区域复制数据
function copyDate(row, col)
{
 var eles =document.getElementsByName("DataArea");
 var elesLength =eles.length;
 var str =""; 
 for(i=0;i<row;i++)
 {
  for(j=0;j<col;j++)
  {   
   str = str + eles[i.toString() + j.toString()].value + "\t";
  }
  str = str + "\n";
   
 }
 $('view').innerText =str;
 window.clipboardData.setData("Text",str);
 opStaBar("数据已经复制到系统剪贴板中."); 
}
//-->
</SCRIPT>
</HEAD>
<BODY>
Excel模拟程序 for by richeehill <br>
<INPUT TYPE="button" class="input_button" value="1创建表名称" >
<INPUT TYPE="button" class="input_button" value="2创建左表头" >
<INPUT TYPE="button" class="input_button" value="3创建上表头" >
<INPUT TYPE="button" class="input_button" value="4生成表" >
<INPUT TYPE="button" class="input_button" value="复制此表" >
<INPUT TYPE="button" class="input_button" value="粘贴"  onclick="fnPaste('view')">
<INPUT TYPE="button" class="input_button" value="清空所有数据" >
<INPUT TYPE="button" class="input_button" value="测试" 
onclick="createTableName(tableName);createLeftHead(valueLeftArray);createTopHead(valueTopArray);createTable('divDate',10,10);">
<hr>
<!-- 表名称 -->
<DIV ALIGN="" class="staCss" id="excelTil" name="excelTil" STYLE="height=3%;width=100%;" > </DIV>
<!-- 表格区域    开始-->
<DIV ALIGN="" id="tableDiv"  STYLE="overflow:scroll; height=60%;width=100%;"> 
   <TABLE class="table1" >
   <TR>
    <TD id="excelCon"> <!-- 项目表头 -->
      项目 
    </TD>
    <TD id="excelTopHead"><!-- 上表头 -->
      上表头 
    </TD>
   </TR>
   <TR>
    <TD id="excelLeftHead"><!-- 左表头 -->
      左表头
    </TD>
    <TD><!-- 数据区 -->
      <DIV ALIGN="" id="divDate">数据区域</DIV> 
    </TD>
   </TR>
   </TABLE>
</DIV>
<!-- 表格区域    结束-->
<DIV ALIGN="" class="staCss" id="staBar" name="staBar" STYLE="height=1%;width=100%">状态栏:</DIV>
<TEXTAREA NAME="" ROWS="3" COLS="130" id="view" onbeforepaste="fnBeforePaste()" onpaste="fnPaste('view')"></TEXTAREA>
</BODY>
</HTML>

 Track:http://richeehill.blog.51cto.com/439699/90356

分享到:
评论

相关推荐

    Qt实现高仿excel表格-可执行文件(源码不开放)

    此外,为了提供良好的用户体验,还需要考虑键盘快捷键的支持以及复制粘贴等功能。 至于文件名"excel_table",这可能是实现上述功能的主程序或者相关的资源文件。由于源码未开放,我们无法详细分析其内部实现,但...

    EXCEL集成工具箱V6.0

    本工具相对于同类工具有不破坏背景色、条件格式、复制粘贴和撤消功能之优点。 【高级背景选择】 背景着色的高级功能,支持行着色、列着色、行与列同时着色共3种方式供选择。 快捷取数 【快捷取数列】 随存储格即时...

    EXCEL集成工具箱V8.0完整增强版(精简)

    本工具相对于同类工具有不破坏背景色、条件格式、复制粘贴和撤消功能之优点。 【高级背景选择】 背景着色的高级功能,支持行着色、列着色、行与列同时着色共3种方式供选择。 快捷取数 【快捷取数列】 随存储格...

    C#基于DataGridView仿Excel

    通过捕获鼠标操作并处理数据复制和粘贴,可以实现这一功能。 4. 自定义行为:为了完全模拟Excel的行为,可能还需要实现其他特性,比如条件格式化(根据单元格值改变其颜色或样式)、公式计算(在单元格内使用公式...

    2017职称计算机Excel2007实操模拟题(ppt-课件).ppt

    * 从“开始”菜单启动:点击“开始”菜单,然后选择“所有程序”,最后选择“Microsoft Office”下的“Excel 2007”。 * 从桌面上的快捷图标启动:在桌面上右键点击,选择“新建”,然后选择“快捷方式”,最后输入...

    Excel样式表格单元格选择jQuery插件

    总结,"Excel样式表格单元格选择jQuery插件"通过利用jQuery的强大功能,为Web应用程序提供了类似Excel的交互体验,使得用户在网页上也能方便地处理数据。通过理解jQuery的基础知识、插件机制以及Excel样式的实现原理...

    excel 速成教程

    - **数据引用与复制**:通过拖动选择数据,利用Ctrl+C、Ctrl+X、Ctrl+V组合键进行复制、剪切和粘贴操作。 - **工作表标签**:用于区分和切换不同的工作表,可通过点击标签来访问不同的工作表。 #### 五、数据管理与...

    Excel使用中的不足有哪些.docx

    此外,不能输入常量数组,也不能复制粘贴或调整条件顺序。 2. **缺少“自动套用格式”功能**:Excel没有内置功能来创建自定义的“自动套用格式”,用户需要手动进行格式设置。 3. **函数嵌套限制**:Excel允许的...

    Microsoft office excel 教程

    此外,Excel还支持快捷键操作,例如Ctrl+C复制,Ctrl+V粘贴,Ctrl+Z撤销。 3. 基本公式:Excel的核心功能之一是公式计算。例如,SUM函数用于求和,AVERAGE函数用于计算平均值。公式以等号“=”开头,例如=A1+B1表示...

    2022年职称计算机考试Excel2022年模拟试题及答案(23).docx

    这份资料是针对2022年职称计算机考试中Excel部分的模拟试题及答案,涵盖了Excel的基本操作、数据处理、公式与函数应用等多个方面。以下是这些题目所涉及的关键知识点: 1. **删除数据透视表**:在Excel中,可以通过...

    SpreadSheet:使用 WPF 用 C# 编写的类似 Excel 的电子表格

    - **选择机制**: 用户应该能够选择单个或多个单元格、行或列,以便进行操作,如复制、粘贴、格式化或计算。 4. **内置函数**: 项目提到了SUM和AVG这两个内置函数,它们是电子表格中常见的聚合函数,用于求和与平均...

    Excel-VBA宏编程实例源代码-在立即窗口中显示右键快捷菜单命令并打印文档.zip

    4. 右键快捷菜单:在Excel中,右键点击单元格或选定区域会弹出一个快捷菜单,包含了多种常用操作,如复制、粘贴、格式化等。VBA可以模拟这些右键操作,甚至扩展快捷菜单,添加自定义命令。 5. 打印功能:在VBA中,...

    全国计算机应用能力考试复习之excel试题及答案解析.pdf

    27. **转置复制区域**:选中区域,然后复制并选择粘贴位置,使用"转置"选项。 28. **设置超级链接**:选中"时间"单元格,使用"超链接"功能,链接到Sheet2的D2单元格。 29. **排序记录**:在数据清单中,使用"数据...

    交互式电子白板最常见的功能

    - **基本编辑**:包括复制、粘贴、删除、组合、锁定等操作,方便用户快速调整布局。 - **高级编辑**:支持图层调整、平移、缩放、旋转等功能,使内容编辑更加精细化。 #### 五、链接功能 链接功能是电子白板连接...

    《计算机应用基础》模拟试题3.pdf

    《计算机应用基础》模拟试题3包含了多个关于计算机基础知识的题目,涵盖了Excel操作、电子邮件、互联网地址、计算机系统、操作系统、Windows附件、Excel功能、Modem、网络拓扑结构以及电子邮件服务等多个方面。...

    计算机一级考试模拟题.doc

    这是完全可行的,可以通过复制和粘贴或使用对象插入功能将 Excel 表格放入 Word 文档。 4. Excel 中允许用户改变文本的颜色。(正确) Excel 提供了多种格式化选项,包括改变文本颜色,用户可以选择需要的单元格或...

    计算机技能考试理论题汇总下.pdf

    28. 剪贴板可以跨应用程序使用,所以能将Word表格数据复制到Excel。 29. Office文档可以设置密码保护,防止未经授权的访问。 30. Excel工作簿通常由多个工作表组成,不是单一的。 31. Excel工作表的行数和列数...

    2014年普通高中学生学业水平考试模拟(信息技术).pdf

    18. Excel公式复制:当公式被复制到G3单元格时,会根据位置自动调整引用,公式应变为=AVERAGE(B3:D3,C5:E5,D7:F7)。 19. 适合编程解决的问题:求线性方程组的解可以通过编程实现,而调查数据的图表表示、编辑文稿和...

    2021年职称计算机考试全真模拟试题及答案11.docx

    以上是对2021年职称计算机考试全真模拟试题及答案中涉及的计算机知识的详细解释,涵盖了文件管理、操作系统设置、任务管理、文件属性、网页保存、区域和语言设置、任务栏定制、回收站管理、打印设置、图表操作以及...

    农村信用社考试计算机知识模拟题及答案.pdf

    6. 剪贴板:剪贴板是内存中的一块区域,用于临时存储剪切或复制的数据,以便在其他程序中粘贴。 7. 窗口与对话框:窗口可以移动位置,但大小通常可以调整;对话框可以移动,但一般不可改变大小。选项B正确。 8. ...

Global site tag (gtag.js) - Google Analytics