ClipboardPasteOptions设置为“all”;但是没有应用格式化

SpreadJS ClipboardPasteOptions is set to "All" but no formatting is applied

本文关键字:应用 格式化 设置 all ClipboardPasteOptions      更新时间:2023-09-26

我打开一个电子表格,我可以看到在控制台:

_clipBoardOptions: "All"

在activeSheet对象。

,但每当我试图从excel粘贴格式,它只是传递值。你对我做错了什么有什么想法吗?

基本上默认是"All",但没有格式传递给SpreadJS这是我的初始化

$("#ss").wijspread({sheetCount:1}); // create wijspread control
    var spread = $("#ss").wijspread("spread"); // get instance of wijspread control
    var sheet = spread.getActiveSheet();

也当我尝试在初始化后手动添加方法时,如下所示:

sheet.clipBoardOptions($.wijmo.wijspread.ClipboardPasteOptions[0])

我试着寻找一个解决方案,但没有太多的信息是给和API有点屁股!

提前感谢任何你的帮助!

SpreadJS不支持从Excel粘贴格式。我们正在研究如何在未来的版本中实现对该功能的支持。

目前,SpreadJS只能通过ExcelIO web服务导入整个Excel工作簿。

要获得复制到SpreadJS的单元格范围的内容,我现在最好的建议是使用ExcelIO将该工作簿导入到隐藏的SpreadJS实例,然后使用ClipboardPasteUndoAction复制并粘贴从隐藏的SpreadJS到可见的范围。

下面是一个代码示例,展示了如何使用ExcelIO web服务导入Excel文件:

    <!DOCTYPE html>
    <html>
    <head>
        <title>Excel IO Sample</title>
    <link type="text/css" href="./css/cobalt/jquery-wijmo.css" rel="stylesheet" />
     <link type="text/css" href="./css/gcspread.sheets.8.40.20151.0.css" rel="stylesheet" /> 
        <script type="text/javascript" src="./external/jquery-1.9.1.js"></script>            
        <script type="text/javascript" src="./scripts/gcspread.sheets.all.8.40.20151.0.min.js"></script>
        <script type="text/javascript">
            $(function () {
                //Initialize SpreadJS
                new GcSpread.Sheets.Spread($("#ss").get(0), {sheetCount: 2});
                //For Excel Import
                $("#btn_Import").click(function () {
                    // SpreadJS Excel IO import service api.
                    var serverUrl = $("#serviceHost").val() + "/xsapi/import";
                    // Generate import api options
                    var formData = new FormData();
                    //Choose a file to import
                    var $importingFile = $("#loadExcel");
                    var theFile = $importingFile[0].files[0];
                    var accept = "application/json";
                    formData.append("file", theFile);
                    formData.append("ExcelOpenFlags", "NoFlagsSet");
                    formData.append("TextFileOpenFlags", "None");
                    formData.append("Password", "");
                    $.ajax({
                        //Server script to process data
                        url: serverUrl,
                        type: 'POST',
                        //Ajax events
                        success: function completeHandler(data, textStatus, jqXHR) {
                            var spread = $("#ss").data("spread");
                            spread.fromJSON(JSON.parse(jqXHR.responseText).spread);
                        },
                        error: function errorHandler(jqXHR, textStatus, errorThrown) {
                            alert(errorThrown);
                        },
                        // Form data
                        data: formData,
                        //Options to tell jQuery not to process data or worry about content-type.
                        cache: false,
                        contentType: false,
                        processData: false,
                        //Options to tell server return data with specified type
                        headers: {
                            "Accept": accept
                        }
                    });
                });
                //For Excel Export with Form Post.
                $("#btn_Export").click(function () {
                    var spread = $("#ss").data("spread");
                    // SpreadJS Excel IO import service api.
                    var serverUrl = $("#serviceHost").val() + "/xsapi/export";
                    // Generate import api options
                    var optContentType = "application/json";
                    // Post the json from spreadjs.
                    var dataObj = {
                        "spread": spread.toJSON(),
                        "exportFileType": "xlsx",
                        "excel": {
                            "saveFlags": "NoFlagsSet",
                            "password": ""
                        },
                    };
                    var content = JSON.stringify(dataObj);
                    var formInnerHtml = '<input type="hidden" name="type" value="' + htmlSpecialCharsEntityEncode(optContentType) + '" />';
                    formInnerHtml += '<input type="hidden" name="data" value="' + htmlSpecialCharsEntityEncode(content) + '" />';
                    var $iframe = $("<iframe style='display: none' src='about:blank'></iframe>").appendTo("body");
                    $iframe.ready(function () {
                        var formDoc = getiframeDocument($iframe);
                        formDoc.write("<html><head></head><body><form method='Post' action='" + serverUrl + "'>" + formInnerHtml + "</form>dummy windows for postback</body></html>");
                        var $form = $(formDoc).find('form');
                        $form.submit();
                    });
                });
            });
            //gets an iframes document in a cross browser compatible manner
            function getiframeDocument($iframe) {
                var iframeDoc = $iframe[0].contentWindow || $iframe[0].contentDocument;
                if (iframeDoc.document) {
                    iframeDoc = iframeDoc.document;
                }
                return iframeDoc;
            }
            var htmlSpecialCharsRegEx = /[<>&'r'n"']/gm;
            var htmlSpecialCharsPlaceHolders = {
                '<': 'lt;',
                '>': 'gt;',
                '&': 'amp;',
                ''r': "#13;",
                ''n': "#10;",
                '"': 'quot;',
                "'": 'apos;' /*single quotes just to be safe*/
            };
            function htmlSpecialCharsEntityEncode(str) {
                return str.replace(htmlSpecialCharsRegEx, function (match) {
                    return '&' + htmlSpecialCharsPlaceHolders[match];
                });
            }
        </script>
    </head>
    <body>
        <h2>SpreadJS Excel IO Sample</h2>
        <div style="margin-bottom: 10px">
            <label><b>Excel IO Service Host : </b></label>
            <input id="serviceHost" value="http://localhost/ExcelIO" style="width: 500px" />
        </div>
        <div id="ss" style="width: 660px; height: 500px; border: 1px solid gray; float: left">
        </div>
        <div style="width: 30%; height: 500px; margin-left: 15px; float: left">
            <fieldset style="margin-bottom: 15px; height: 45%">
                <legend><b>Excel IO Import Options</b></legend>
                <input type="file" id="loadExcel" accept=".xlsx, .xls, .csv, .txt" />
                <input id="btn_Import" type="button" value="Import" />
            </fieldset>
            <fieldset style="margin-bottom: 15px; height: 45%">
                <legend><b>Excel IO Export Options</b></legend>
                <input id="btn_Export" type="button" value="Export" />
            </fieldset>
        </div>
    </body>
    </html>

链接:http://sphelp.grapecity.com/webhelp/SpreadJSWeb/webframe.html exceliocode.html

下面是一个代码示例,演示如何使用ClipboardPasteUndoAction:

    $(document).ready(function () {
        //There are two buttons in html page with the id "cutPasteBtn" and "copyPasteBtn".
        var spread = new GcSpread.Sheets.Spread($("#ss").get(0),{sheetCount:3});
        var sheet = spread.getActiveSheet();
        sheet.setValue(0, 0, 1, GcSpread.Sheets.SheetArea.viewport);
        sheet.setValue(1, 0, 2, GcSpread.Sheets.SheetArea.viewport);
        sheet.setFormula(2, 0, "=A1+A2", GcSpread.Sheets.SheetArea.viewport);
        sheet.setValue(0, 1, 3, GcSpread.Sheets.SheetArea.viewport);
        sheet.setValue(1, 1, 4, GcSpread.Sheets.SheetArea.viewport);
        sheet.setFormula(2, 1, "=B1+B2", GcSpread.Sheets.SheetArea.viewport);
        var fromRange = new GcSpread.Sheets.Range(0, 0, 3, 2);
        var toRanges = [new GcSpread.Sheets.Range(4, 0, 3, 2)];
        $("#cutPasteBtn").click(function () {
            //Cut Paste Action
            var clipboardCutPasteAction = new GcSpread.Sheets.UndoRedo.ClipboardPasteUndoAction(sheet, sheet, sheet, { fromRange: fromRange, pastedRanges: toRanges, isCutting: true, clipboardText: "" }, GcSpread.Sheets.ClipboardPasteOptions.Values);
            clipboardCutPasteAction.execute(sheet);
        });

        $("#copyPasteBtn").click(function () {
            //Copy Paste Action
            var clipboardCopyPasteAction = new GcSpread.Sheets.UndoRedo.ClipboardPasteUndoAction(sheet, sheet, sheet, { fromRange: fromRange, pastedRanges: toRanges, isCutting: false, clipboardText: "" }, GcSpread.Sheets.ClipboardPasteOptions.Values);
            clipboardCopyPasteAction.execute(sheet);
        });
    });

链接:http://sphelp.grapecity.com/webhelp/SpreadJSWeb/webframe.html sccopy.html

问候,

GrapeCity专家