找回密码
 立即注册

QQ登录

只需一步,快速开始

大白菜

中级会员

77

主题

257

帖子

884

积分

中级会员

积分
884

圣诞拼拼乐微信认证勋章

大白菜
中级会员   /  发表于:2018-5-16 15:16  /   查看:7574  /  回复:15
请问一下,单元格弹出日期控件,我看了官方博客是整列的。
http://www.grapecity.com.cn/blogs/datepicker
我看了这个是对整个列操作的,我想对某一个单元格操作

15 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-16 16:36:39
沙发
因为博客中设置的是整列
var range = sheet.getRange(-1, 1, -1 ,1);
range.cellType(new DatePickerCellType());
如果要改成单个单元格,将var range = sheet.getRange(-1, 1, -1 ,1);改为获取某一个cell
var cell = sheet.getCell(row,col);
cell.cellType(new DatePickerCellType());
回复 使用道具 举报
大白菜
中级会员   /  发表于:2018-5-17 15:52:17
板凳
ClarkPan 发表于 2018-5-16 16:36
因为博客中设置的是整列
var range = sheet.getRange(-1, 1, -1 ,1);
range.cellType(new DatePickerCell ...

好的,非常感谢,这个插件能实现选择年月日,我现在想实现到年月日,时分秒的功能。datepicker 他的一个时分插件,我尝试了,放在表格内时分秒无效果。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-17 18:27:55
地板
原理跟这个demo一样,但是因为是不同插件,肯定需要有些微调的,参照他的方式改一些就可以,肯定不能照搬全抄啊
回复 使用道具 举报
大白菜
中级会员   /  发表于:2018-5-18 09:16:21
5#
ClarkPan 发表于 2018-5-17 18:27
原理跟这个demo一样,但是因为是不同插件,肯定需要有些微调的,参照他的方式改一些就可以,肯定不能照搬全 ...

非常感谢,另外我是对某一个固定的单元格进行日期操作的,现在问题是其他单元格都弹出日期了。我的版本是9.0的。麻烦帮我看下。谢谢了 var ns = GcSpread.Sheets;
        function DatePickerCellType() {
        }
        DatePickerCellType.prototype = new ns.CustomCellType();
        DatePickerCellType.prototype.createEditorElement = function (context) {
            //Create input presenter.
            var input = document.createElement("input");
            return input;
        };
      DatePickerCellType.prototype.activateEditor = function (editorContext, cellStyle, cellRect, context) {
            //Initialize input editor.
            if (editorContext) {
                $editor = $(editorContext);
                ns.CustomCellType.prototype.activateEditor.apply(this, arguments);
                $editor.datepicker();
                $editor.css("position", "absolute");
                $editor.attr("gcUIElement", "gcEditingInput");
                $(".ui-datepicker").attr("gcUIElement", "gcEditingInput");
            }
        }
        DatePickerCellType.prototype.deactivateEditor = function (editorContext, context) {
            //Remove input editor when end editor status.
            if (editorContext) {
                var element = editorContext;
                $(element).datepicker("hide");
                $(element).datepicker("destroy");
            }
            ns.CustomCellType.prototype.deactivateEditor.apply(this, arguments)
        };

        DatePickerCellType.prototype.setEditorValue = function (editor, value, context) {
            //Sync value from Cell value to editor value.
            $(editor).datepicker("setDate", value);
        };
        DatePickerCellType.prototype.getEditorValue = function (editor, context) {
            //Sync value from editor value to cell value.
            return $(editor).datepicker("getDate");
        };

        DatePickerCellType.prototype.updateEditor = function (editorContext, cellStyle, cellRect, context) {
            if (editorContext) {
                $editor = $(editorContext);
                $editor.css("width", cellRect.width - 1);
                $editor.css("height", cellRect.height - 3);
            }
        };
------上面是通用的,下面我对整个表格进行遍历操作具体哪个表格是日期---或者直接赋值具体哪个单元格操作也不行--

   for (var i = 0; i < spread.sheets[0].getRowCount() ; i++) {
                for (var j = 0; j < spread.sheets[0].getColumnCount() ; j++) {


                          spread.sheets[0].getCell(2, 2).text(0, 1, "DatePicker");
                           var range = spread.sheets[0].getCell(2,2);
                            range.cellType(new DatePickerCellType());
                            range.formatter("yyyy年MM月dd日");

              }
}




回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-18 14:36:44
6#
下面循环我没看弄您要干什么,您是想只给某一个单元格设置datepicker吗?
回复 使用道具 举报
大白菜
中级会员   /  发表于:2018-5-18 15:42:04
7#
ClarkPan 发表于 2018-5-18 14:36
下面循环我没看弄您要干什么,您是想只给某一个单元格设置datepicker吗?

---先说明下--如果是空表格,某一个单元格设置日期是可以的。其他单元格不影响
如果是有数据的表格,我现在是所有表格都会弹出日期选择器,而不是某一个单元格
-----
我那个循环是拿到整个表格数据,然后循环,给具体某个单元格设置日期控件,现在是所有单元格都影响了,都是日期了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-18 17:52:53
8#
代码可能有问题,首先spread.sheets[0].getCell(2, 2).text(0, 1, "DatePicker");这句就有问题getCell(2, 2)是获取一个单元格.text是给单元格设置文本,但是设置文本只有1个参数。没有前面两个参数。
您只设置某一个单元格为datepicker为什么要放在循环中进行设置呢。
回复 使用道具 举报
大白菜
中级会员   /  发表于:2018-5-21 13:05:24
9#
ClarkPan 发表于 2018-5-18 17:52
代码可能有问题,首先spread.sheets[0].getCell(2, 2).text(0, 1, "DatePicker");这句就有问题getCell(2, 2 ...

循环是要我不清楚具体哪个单元格需要日期,我要循环拿数据判断具体是哪个单元格需要日期。---sheet.getCell(2, 2).text(0, 1, "DatePicker");   这种写法不报错,功能能实现,如果错误,请指教下正确方法。

如果初始化一个空白表格,代码应该没问题,没报错,也实现功能了。--------        var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 1 });         sheet= spread.getActiveSheet();
         sheet.getCell(2, 2).text(0, 1, "DatePicker");   
        var range = sheet.getCell(2, 2);
        range.cellType(new DatePickerCellType());
        range.width(100);
        range.formatter("yyyy年MM月dd日");


------------如果我有数据,然后循环后赋值哪个单元格


就多个单元格都是日期类型了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-21 16:51:13
10#
循环是要我不清楚具体哪个单元格需要日期,我要循环拿数据判断具体是哪个单元格需要日期。---sheet.getCell(2, 2).text(0, 1, "DatePicker");   这种写法不报错,功能能实现,如果错误,请指教下正确方法。----> 用sheet.getText(row,col)来获取指定单元格的文本,然后判断是否是您需要的。
您那种方法不是正确用法所以不保证正确性
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部