首页 > 其他分享 >在线excel:LuckySheet 入门

在线excel:LuckySheet 入门

时间:2023-05-07 17:23:57浏览次数:47  
标签:cnt loading 入门 excel stroke LuckySheet luckysheet var rotate

Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。 

文档地址:https://dream-num.github.io/LuckysheetDocs/zh/

做一个页面编辑然后保存进数据库。另一个页面把前一个页面的内容展示出来。第一个页面,

<!DOCTYPE html>
<html>

<head lang='zh'>
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="renderer" content="webkit" />
    <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0" />
    <title>Luckysheet</title>

    <link rel='stylesheet' href='./plugins/css/pluginsCss.css' />
    <link rel='stylesheet' href='./plugins/plugins.css' />
    <link rel='stylesheet' href='./css/luckysheet.css' />
    <link rel='stylesheet' href='./assets/iconfont/iconfont.css' />
    <script src="./plugins/js/plugin.js"></script>

    <!-- rollup luckysheet.js -->
    <script src="./luckysheet.umd.js"></script>

</head>

<body>
    <!-- Non-full screen test -->
    <!-- <div style="position: relative;width: 100%;height: 100%;">

        <div id="luckysheet" style="margin:0px;padding:0px;position:absolute;width:80%;height:500px;left: 20%;top: 200px;bottom:0;right: 0;"></div>
    </div> -->
    <button onclick="myFunction()">保存</button>
    <div id="luckysheet" style="margin:100px;padding:0px;position:absolute;width:100%;height:100%;left: 0px;top: 0px;">
    </div>
    <!-- demo feature, non-production use -->


    <script>
        function myFunction() {
            var data2 = luckysheet.getAllSheets();
            var cnt = JSON.stringify(data2);
            $.post("xls.aspx", {
                cnt: cnt            });
        }

        $(function () {

            // According to the browser language
            //var options = {
            //    container: 'luckysheet' //luckysheet为容器id
            //}

            //luckysheet.create(options);

            var options = {
                container: 'luckysheet', //luckysheet为容器id
                title: "在线excel", // 设定表格名称
                lang: 'zh', // 设定表格语言
               
            }

            luckysheet.create(options);




        })
    </script>
    <style>
        /* 自定义loading演示样式 */
        @keyframes loading-rotate {
            0% {
                transform: rotate(0deg);
            }

            100% {
                transform: rotate(360deg);
            }
        }

        @keyframes loading-dash {
            0% {
                stroke-dasharray: 1, 200;
                stroke-dashoffset: 0;
            }

            50% {
                stroke-dasharray: 90, 150;
                stroke-dashoffset: -40px;
            }

            100% {
                stroke-dasharray: 90, 150;
                stroke-dashoffset: -120px;
            }
        }

        .loadingAnimation {
            width: 3em;
            height: 3em;
            animation: loading-rotate 2s linear infinite;
        }

            .loadingAnimation circle {
                animation: loading-dash 1.5s ease-in-out infinite;
                stroke-dasharray: 90, 150;
                stroke-dashoffset: 0;
                stroke-width: 2;
                stroke: currentColor;
                stroke-linecap: round;
            }
    </style>
</body>

</html>

 

function myFunction() {
            var data2 = luckysheet.getAllSheets();
            var cnt = JSON.stringify(data2);
            $.post("xls.aspx", {
                cnt: cnt            });
        }

这段,是把整个excel的 数据全部以json 的方式post一个aspx页面,在这个aspx页面,保存进数据库。

 

 

第二个页面:

<!DOCTYPE html>
<html>

<head lang='zh'>
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="renderer" content="webkit" />
    <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0" />
    <title>Luckysheet</title>

    <link rel='stylesheet' href='./plugins/css/pluginsCss.css' />
    <link rel='stylesheet' href='./plugins/plugins.css' />
    <link rel='stylesheet' href='./css/luckysheet.css' />
    <link rel='stylesheet' href='./assets/iconfont/iconfont.css' />
    <script src="./plugins/js/plugin.js"></script>

    <!-- rollup luckysheet.js -->
    <script src="./luckysheet.umd.js"></script>

</head>

<body>
    <!-- Non-full screen test -->
    <!-- <div style="position: relative;width: 100%;height: 100%;">

        <div id="luckysheet" style="margin:0px;padding:0px;position:absolute;width:80%;height:500px;left: 20%;top: 200px;bottom:0;right: 0;"></div>
    </div> -->
    <button onclick="myFunction()">点我</button>
    <div id="luckysheet" style="margin:100px;padding:0px;position:absolute;width:100%;height:100%;left: 0px;top: 0px;">
    </div>
    <!-- demo feature, non-production use -->


    <script>
        function myFunction() {
            var data2 = luckysheet.getAllSheets();
            var cnt = JSON.stringify(data2);
            $.post("xls.aspx", {
                cnt: cnt            });
        }

        $(function () {

            // According to the browser language
            //var options = {
            //    container: 'luckysheet' //luckysheet为容器id
            //    load
            //}
   //         https://localhost:7048/api/1
            //luckysheet.create(options);

            var options = {
                container: 'luckysheet', //luckysheet为容器id
                title: "在线excel", // 设定表格名称
                lang: 'zh', // 设定表格语言
                gridKey: "excel001",
            /*    data: eval(returnValue.result),*/
                loadUrl: "http://***.***.***.***:9091/api/1"
            }
            
            luckysheet.create(options);



        })
    </script>
    <style>
        /* 自定义loading演示样式 */
        @keyframes loading-rotate {
            0% {
                transform: rotate(0deg);
            }

            100% {
                transform: rotate(360deg);
            }
        }

        @keyframes loading-dash {
            0% {
                stroke-dasharray: 1, 200;
                stroke-dashoffset: 0;
            }

            50% {
                stroke-dasharray: 90, 150;
                stroke-dashoffset: -40px;
            }

            100% {
                stroke-dasharray: 90, 150;
                stroke-dashoffset: -120px;
            }
        }

        .loadingAnimation {
            width: 3em;
            height: 3em;
            animation: loading-rotate 2s linear infinite;
        }

            .loadingAnimation circle {
                animation: loading-dash 1.5s ease-in-out infinite;
                stroke-dasharray: 90, 150;
                stroke-dashoffset: 0;
                stroke-width: 2;
                stroke: currentColor;
                stroke-linecap: round;
            }
    </style>
</body>

</html>

黄色这段js,loadUrl: "http://***.***.***.***:9091/api/1"   loadUrl 是post方法,获取api 的 json数据,这个json就是上个页面存进数据库的。

using MyWebApp.dapper;
using System.Data;
using System.Security.Claims;

namespace MyWebApp
{
    public class MyEndpoint1 : EndpointWithoutRequest
    {
        public override void Configure()
        {
            Post("/api/1");
            AllowAnonymous();
             Options(x => x.RequireCors(p => p.AllowAnyOrigin()));


           
        }

        public override Task HandleAsync(CancellationToken t)
        {
            string sql = AppConfig.sqlserver;

            string sqlstr = "  select top 1 * from  LuckySheetJson order by create_time desc";

            DapperUtility dapper = new DapperUtility();

           List<m_LuckySheetJson> list=dapper.QuerySQL<m_LuckySheetJson>(sqlstr);
            m_LuckySheetJson item = list[0];
            string LuckySheetJson = item.LuckySheetJson;

            return SendAsync(LuckySheetJson);
        }
    }
}

我这里尝试用了一下FastEndpoints,感觉还不错。FastEndpoints 是一个基于 .NET 6 开发的开源 webapi 框架,它可以很好地替代 .NET Minimal APIs 和 MVC ,专门为开发效率而生,带来了全新的开发模式和编码体验。

 

 

标签:cnt,loading,入门,excel,stroke,LuckySheet,luckysheet,var,rotate
From: https://www.cnblogs.com/jiqingsishenet/p/17379601.html

相关文章

  • Vue2入门之超详细教程九-监视属性
    1、简介监视属性watch:1.当被监视的属性变化时,回调函数自动调用,进行相关操作2.监视的属性必须存在,才能进行监视!!3.监视的两种写法:(1) newVue时传入watch配置(2) 通过vm.$watch监视深度监测:(1) Vue中的......
  • IoC入门案例
    跟着黑马,简单写一个小的测试程序,学习一下IoC第一步,导入Spring的坐标Spring-context,对应的版本是2.1.10.RELEASE黑马刚开篇讲的是,springframework,需要用到这个maven依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-conte......
  • 【笔记】跟吴恩达和IsaFulford学提示词工程(初级开发者入门课程)
    标签:#Prompt#LLM创建时间:2023-04-2817:05:45链接:课程(含JupyterNotebook),中文版讲师:AndrewNg,IsaFulford阅读提示这是一篇入门的教程,入门的意思是指大部分内容,可能你都已经知道了,但是知道不等于掌握,Prompt是一门实践经验主义科学,LLM是个黑盒,你只要不断去“实践”才能......
  • Nginx 入门实战(3)--Nginx 常用配置参数说明
    Nginx中包含众多的参数,这些参数影响Nginx的行为;本文主要介绍一些常用的参数。1、Nginx配置文件基本结构Nginx的配置文件为conf/nginx.conf,配置文件由配置指令/参数组成,有些指令/参数位于main的位置(如:events、http),有些指令/参数位于其他参数下(如:server位于http下);......
  • ICT实战系统集成-LAB2-openEuler 命令行基础操作入门
    ICT实战系统集成-实验02-openEuler命令行基础操作入门1思考题1.1创建一个/iamthebest目录;1.2在/iamthebest目录下创建/cat和/dog两个目录;1.3将/etc/passwd文件复制到/iamthebest目录;并查看被复制文件的操作权限;1.4尝试执行cp-i/etc/passwd.你会发现什么?为什么......
  • spring3.0 mvc和rest入门例子
    关键字:spring3.0mvc和rest入门例子现在写个简单的小例子出来给初学者学习下。srping3也支持rest,所以例子也包括这部分内容。先看web.xml配置<!--像js,css,gif等静态文件,需要配置为默认的servlet--><servlet-mapping><servlet-name>defaul......
  • Docker 入门使用 (二)
    配置国内的源>/etc/docker/daemon.json{"registry-mirrors":["https://mirror.ccs.tencentyun.com","http://registry.docker-cn.com","http://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com......
  • iBatis简单入门教程
       iBatis简单入门教程 iBatis简介:iBatis是apache的一个开源项目,一个O/RMapping解决方案,iBatis最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis已经改名为Mybatis了。官网为:ht......
  • 嵌入式开发入门-51单片机基础知识(9)- DS18B20
    一、DS18B20简介1、DS18B20是一个数字温度传感器,单总线传输数据,测量温度范围为-45℃-125℃,测量精度可配置为9位,10位,11位,12位,默认配置12位,分别对应0.5℃、0.25℃、0.125℃和0.0625℃。二、温度测量1、由于DS18B20通电后,处于空闲状态,不进行温度测量和转换,所以必须发出转......
  • SpringWeb Flux入门
    新建项目,加入依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframew......