找回密码
 立即注册

QQ登录

只需一步,快速开始

470539167

注册会员

9

主题

13

帖子

191

积分

注册会员

积分
191
470539167
注册会员   /  发表于:2019-5-29 11:53  /   查看:2510  /  回复:1
本帖最后由 470539167 于 2019-5-29 11:58 编辑

我今天看粘贴的功能,可以正常粘贴,代码如下,
  1. <!DOCTYPE html>
  2. <html lang="en">

  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7.     <title>Document</title>
  8.     <link rel="stylesheet"
  9.         href="https://demo.grapecity.com.cn/SpreadJS/cdn/v10/Spread.Sheets.Evaluation.10.3.3/css/gc.spread.sheets.excel2013white.10.3.3.css">
  10.     <script
  11.         src="https://demo.grapecity.com.cn/SpreadJS/cdn/v10/Spread.Sheets.Evaluation.10.3.3/scripts/gc.spread.sheets.all.10.3.3.min.js"></script>
  12.     <style>
  13.         .sample-tutorial {
  14.             position: relative;
  15.             height: 100%;
  16.             overflow: hidden;
  17.         }

  18.         .sample-spreadsheets {
  19.             width: calc(100% - 280px);
  20.             height: 100%;
  21.             overflow: hidden;
  22.             float: left;
  23.         }

  24.         .options-container {
  25.             float: right;
  26.             width: 280px;
  27.             padding: 12px;
  28.             height: 100%;
  29.             box-sizing: border-box;
  30.             background: #fbfbfb;
  31.             overflow: auto;
  32.         }

  33.         .sample-options {
  34.             z-index: 1000;
  35.         }

  36.         .inputContainer {
  37.             width: 100%;
  38.             height: auto;
  39.             border: 1px solid #eee;
  40.             padding: 6px 12px;
  41.             margin-bottom: 10px;
  42.             box-sizing: border-box;
  43.         }

  44.         .input {
  45.             font-size: 14px;
  46.             height: 20px;
  47.             border: 0;
  48.             outline: none;
  49.             background: transparent;
  50.         }

  51.         .button {
  52.             height: 30px;
  53.             padding: 6px 12px;
  54.             width: 80px;
  55.             margin-top: 6px;
  56.         }

  57.         .group {
  58.             padding: 12px;
  59.         }

  60.         .group input {
  61.             padding: 4px 12px;
  62.         }
  63.     </style>
  64. </head>

  65. <body>
  66.     <div class="sample-tutorial">
  67.         <div id="aa" class="sample-spreadsheets"></div>
  68.         <div id="bb" class="sample-spreadsheets"></div>
  69.         <div class="options-container">
  70.             <div class="option-row">
  71.                 <div class="inputContainer">
  72.                     <input type="button" id="paste" value="粘贴" class="button">
  73.                 </div>
  74.             </div>
  75.         </div>
  76.     </div>
  77.     <script>
  78.         window.onload = function () {
  79.             var spreadAA = new GC.Spread.Sheets.Workbook(document.getElementById("aa"));
  80.             var spreadBB = new GC.Spread.Sheets.Workbook(document.getElementById("bb"));

  81.             var sheetAA = spreadAA.getActiveSheet();

  82.             sheetAA.setValue(0, 0, 1, GC.Spread.Sheets.SheetArea.viewport);
  83.             sheetAA.setValue(1, 0, 2, GC.Spread.Sheets.SheetArea.viewport);
  84.             sheetAA.setFormula(2, 0, "=A1+A2", GC.Spread.Sheets.SheetArea.viewport);
  85.             sheetAA.setValue(0, 1, 3, GC.Spread.Sheets.SheetArea.viewport);
  86.             sheetAA.setValue(1, 1, 4, GC.Spread.Sheets.SheetArea.viewport);
  87.             sheetAA.setFormula(2, 1, "=B1+B2", GC.Spread.Sheets.SheetArea.viewport);

  88.             var fromRange = [new GC.Spread.Sheets.Range(0, 0, 3, 2)];
  89.             var toRanges = [new GC.Spread.Sheets.Range(5, 0, 3, 2)];

  90.             document.getElementById('paste').onclick = function () {
  91.                 var sheetAA = spreadAA.getActiveSheet();
  92.                 var sheetAA = spreadAA.getActiveSheet();
  93.                 spreadAA.commandManager().execute({
  94.                     cmd: "clipboardPaste",
  95.                     sheetName: sheetAA.name(),
  96.                     fromSheet: sheetAA,
  97.                     fromRanges: fromRange,
  98.                     pastedRanges: toRanges,
  99.                     isCutting: false,
  100.                     clipboardText: "",
  101.                     pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all
  102.                 });
  103.             }
  104.         };

  105.     </script>
  106. </body>

  107. </html>
复制代码
然后我就想在workerAA中能不能粘贴到workerBB中呢,我修改了下代码,粘贴的区域是有的但是数据没有了,这是怎么回事呢,cmd的clipboardPaste具体是怎么实现的呢,我要怎么修改才能同时把数据等全粘贴过去呢。代码如下: image.png443970946.png
  1. <!DOCTYPE html>
  2. <html lang="en">

  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7.     <title>Document</title>
  8.     <link rel="stylesheet"
  9.         href="https://demo.grapecity.com.cn/SpreadJS/cdn/v10/Spread.Sheets.Evaluation.10.3.3/css/gc.spread.sheets.excel2013white.10.3.3.css">
  10.     <script
  11.         src="https://demo.grapecity.com.cn/SpreadJS/cdn/v10/Spread.Sheets.Evaluation.10.3.3/scripts/gc.spread.sheets.all.10.3.3.min.js"></script>
  12.     <style>
  13.         .sample-tutorial {
  14.             position: relative;
  15.             height: 100%;
  16.             overflow: hidden;
  17.         }

  18.         .sample-spreadsheets {
  19.             width: calc(100% - 280px);
  20.             height: 100%;
  21.             overflow: hidden;
  22.             float: left;
  23.         }

  24.         .options-container {
  25.             float: right;
  26.             width: 280px;
  27.             padding: 12px;
  28.             height: 100%;
  29.             box-sizing: border-box;
  30.             background: #fbfbfb;
  31.             overflow: auto;
  32.         }

  33.         .sample-options {
  34.             z-index: 1000;
  35.         }

  36.         .inputContainer {
  37.             width: 100%;
  38.             height: auto;
  39.             border: 1px solid #eee;
  40.             padding: 6px 12px;
  41.             margin-bottom: 10px;
  42.             box-sizing: border-box;
  43.         }

  44.         .input {
  45.             font-size: 14px;
  46.             height: 20px;
  47.             border: 0;
  48.             outline: none;
  49.             background: transparent;
  50.         }

  51.         .button {
  52.             height: 30px;
  53.             padding: 6px 12px;
  54.             width: 80px;
  55.             margin-top: 6px;
  56.         }

  57.         .group {
  58.             padding: 12px;
  59.         }

  60.         .group input {
  61.             padding: 4px 12px;
  62.         }
  63.     </style>
  64. </head>

  65. <body>
  66.     <div class="sample-tutorial">
  67.         <div id="aa" class="sample-spreadsheets"></div>
  68.         <div id="bb" class="sample-spreadsheets"></div>
  69.         <div class="options-container">
  70.             <div class="option-row">
  71.                 <div class="inputContainer">
  72.                     <input type="button" id="paste" value="粘贴" class="button">
  73.                 </div>
  74.             </div>
  75.         </div>
  76.     </div>
  77.     <script>
  78.         window.onload = function () {
  79.             var spreadAA = new GC.Spread.Sheets.Workbook(document.getElementById("aa"));
  80.             var spreadBB = new GC.Spread.Sheets.Workbook(document.getElementById("bb"));

  81.             var sheetAA = spreadAA.getActiveSheet();

  82.             sheetAA.setValue(0, 0, 1, GC.Spread.Sheets.SheetArea.viewport);
  83.             sheetAA.setValue(1, 0, 2, GC.Spread.Sheets.SheetArea.viewport);
  84.             sheetAA.setFormula(2, 0, "=A1+A2", GC.Spread.Sheets.SheetArea.viewport);
  85.             sheetAA.setValue(0, 1, 3, GC.Spread.Sheets.SheetArea.viewport);
  86.             sheetAA.setValue(1, 1, 4, GC.Spread.Sheets.SheetArea.viewport);
  87.             sheetAA.setFormula(2, 1, "=B1+B2", GC.Spread.Sheets.SheetArea.viewport);

  88.             var fromRange = [new GC.Spread.Sheets.Range(0, 0, 3, 2)];
  89.             var toRanges = [new GC.Spread.Sheets.Range(5, 0, 3, 2)];

  90.             document.getElementById('paste').onclick = function () {
  91.                 var sheetAA = spreadAA.getActiveSheet();
  92.                 var sheetBB = spreadBB.getActiveSheet();
  93.                 spreadBB.commandManager().execute({
  94.                     cmd: "clipboardPaste",
  95.                     sheetName: sheetBB.name(),
  96.                     fromSheet: sheetAA,
  97.                     fromRanges: fromRange,
  98.                     pastedRanges: toRanges,
  99.                     isCutting: false,
  100.                     clipboardText: "",
  101.                     pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all
  102.                 });
  103.             }
  104.         };

  105.     </script>
  106. </body>

  107. </html>
复制代码
效果图
image.png514758605.png


1 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-5-29 15:55:58
沙发
您好,通过js代码现在无法实现用command跨workbook 粘贴复制。通过ctrl+C V的方式可以将内容放到系统剪切板实现粘贴复制。但是直接用代码无权限粘贴时读取剪切板。

如果要range复制,就循环获取需要的内容,再在这边设置。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部