整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Web端如此强大的电子表格Excel插件,轻松进行数据处理-jExcel

jExcel是一个轻量级的原生javascript插件,用于创建与Excel或任何其他电子表格软件兼容的基于Web的交互式表格和电子表格。可以从JS数组,JSON,CSV或XSLX文件创建在线电子表格表。可以从excel复制并直接粘贴到jExcel电子表格,反之亦然。集成任何第三方javascript插件非常容易,可以创建自己的自定义列,自定义编辑器,并在应用程序中自定义任何功能。jExcel通过其原生列类型提供了大量不同的输入选项,以涵盖最常见的基于Web的应用程序需求。它是Web数据管理的完整解决方案。使用jExcel javascript电子表格创建出色的应用程序。



开源地址

https://github.com/paulhodel/jexcel

主要优点

  • 制作丰富且用户友好的Web界面和应用程序
  • 可以使用用户的方式轻松处理复杂的数据输入。
  • 改善用户软件体验
  • 创建丰富的CRUDS和漂亮的UI
  • 与excel的兼容性:用户可以使用常见的复制和粘贴快捷方式移动数据
  • 通过简单的第三方插件集成轻松进行自定义
  • 精益,快速且易于使用
  • 成千上万的成功用户案例
  • 加快处理基于Web的软件中的复杂数据输入的工作

安装使用

npm install jexcel

  • 简单示例

将javascript电子表格集成到站中,创建您的第一个在线电子表格的基本示例:

1、首先引入相关js和css文件

<script src="./jexcel/v3/jexcel.js"></script>
<script src="./jsuites/v2/jsuites.js"></script>
<link rel="stylesheet" href="./jsuites/v2/jsuites.css" type="text/css" />
<link rel="stylesheet" href="./jexcel/v3/jexcel.css" type="text/css" />

2、定义一个基于div的容器并编写js



<div id="mytable"></div>
<script>
 data = [
 ["苹果", 0, 1],
 ["草莓", 1, 2],
 ["西瓜", 2, 3]
 ];
 jexcel(document.getElementById("mytable"), {
 data: data,
 colWidths: [300, 80, 100]
 });
</script>

3、打开浏览器查看效果

就这么几句简单的代码就像打开了一个无限简化的Excel一般



查看DEMO

Github上提供了相关Demo,我们一起来看一看都有哪些

  • 搜索和分页
jexcel(document.getElementById('spreadsheet'), {
 csv:'https://bossanova.uk/jexcel/v3/demo.csv',
 csvHeaders:true,
 search:true,
 pagination:10,
 columns: [
 { type:'text', width:300 },
 { type:'text', width:200 },
 { type:'text', width:100 },
 { type:'text', width:100 },
 { type:'text', width:100 },
 ]
});


  • 列类型支持
  1. text
  2. numeric
  3. hidden
  4. dropdown
  5. autocomplete
  6. checkbox
  7. radio
  8. calendar
  9. image
  10. color

var data = [
 ['Jazz', 'Honda', '2019-02-12', '', true, '$ 2.000,00', '#777700'],
 ['Civic', 'Honda', '2018-07-11', '', true, '$ 4.000,01', '#007777'],
];
jexcel(document.getElementById('spreadsheet'), {
 data:data,
 columns: [
 { type: 'text', title:'Car', width:120 },
 { type: 'dropdown', title:'Make', width:200, source:[ "Alfa Romeo", "Audi", "Bmw" ] },
 { type: 'calendar', title:'Available', width:200 },
 { type: 'image', title:'Photo', width:120 },
 { type: 'checkbox', title:'Stock', width:80 },
 { type: 'numeric', title:'Price', width:100, mask:'$ #.##,00', decimal:',' },
 { type: 'color', width:100, render:'square', }
 ]
});


  • 下拉框

var data = [
 ['US', 'Wholemeal', 'Yes', '2019-02-12'],
 ['CA;US;UK', 'Breakfast Cereals', 'Yes', '2019-03-01'],
 ['CA;BR', 'Grains', 'No', '2018-11-10'],
 ['BR', 'Pasta', 'Yes', '2019-01-12'],
];
jexcel(document.getElementById('spreadsheet'), {
 data:data,
 columns: [
 { type:'dropdown', width:'300', title:'Product Origin', url:'/jexcel/countries', autocomplete:true, multiple:true },
 { type:'text', width:'200', title:'Description' },
 { type:'dropdown', width:'100', title:'Stock', source:['No','Yes'] },
 { type:'calendar', width:'100', title:'Best before' },
 ]
});


  • 日期时间选择框

var data = [
 ['Flag Fen', 'South East', '2019-01-01'],
 ['Bristol Aero Collection (BAC)','South West','2019-04-03'],
 ['Experience Barnsley', 'North','2018-12-03'],
 ['Cinema Museum', 'London',''],
 ['University of Hertfordshire Art Collection', 'South East',''],
 ['LUX London', 'London','2016-11-03'],
];
jexcel(document.getElementById('spreadsheet'), {
 data:data,
 columns: [
 {
 type:'text',
 title:'Museum',
 width:'300',
 },
 {
 type:'dropdown',
 title:'Region',
 source:['South East','South West','North','London'],
 width:'200',
 },
 {
 type:'calendar',
 title:'Last visit',
 options: { format:'DD/MM/YYYY' },
 width:'100',
 },
 ]
});


  • 上传图片到表格


jexcel(document.getElementById('spreadsheet'), {
 data:data,
 columns: [
 { type:'text', width:300, title:'Title' },
 { type:'image', width:120, title:'Cover' },
 ]
});


  • 表格操作

插入,移除和移动列和行,这块就是表格的相关操作了,都可以通过相关API实现



  • 表头

jExcel电子表格使用指令nestedHeadrs本机实现嵌套头文件,如下面的示例所示。



  • 导出

导出非常简单,就调用一个方法


mySpreadsheet = jexcel(document.getElementById('spreadsheet1'), {
 csv:'https://bossanova.uk/jexcel/v3/demo.csv',
 csvHeaders:true,
 columns: [
 { type:'text', width:70 },
 { type:'text', width:200 },
 { type:'text', width:300 },
 ]
});
document.getElementById('download').onclick = function () {
 mySpreadsheet.download();
}



由于相关示例比较丰富,包括合并单元格、懒加载等丰富的功能等再此就不在展示,已经对它感兴趣的小伙伴不妨直接去体验下,就能感受到它的强悍了!并且还提供了包括React、Vue、jQuery等在内的相关实现,这样你就可以更好的集成到你的相关项目中去了,非常的人性化!

总结

jExcel是一个非常简单而且功能丰富的Web端JavaScript电子表格,就和名字一样,就如同是Web端的Excel,相当于是Excel的表格模块,无论是处理数据还是用户操作比普通的HTML表格强上无数倍,相信已经有小伙伴想去尝试一番了,赶紧试试吧!希望对你有所帮助!

挑战30天在头条写日记#

HTML是一种用于创建网页结构和内容的标记语言,其中包含了许多标签,可以用于排版、布局和展示内容。本文将详细介绍HTML中的<tr>和<td>标签的使用方法,并通过示例展示如何创建表格。


1. <tr>标签的作用: <tr>标签代表HTML表格中的一行(行数据),它可以包含一个或多个<td>元素作为单元格。


2. <td>标签的作用: <td>标签用于定义表格中的一个单元格(列数据),可以包含文本、图像、链接等内容。

3. 如何使用<tr>和<td>: 在使用<tr>和<td>标签时,首先需要创建一个<table>元素作为表格的容器,然后在其中嵌套<tr>和<td>标签,如下所示:

htmlCopy code<table>
  <tr>
    <td>单元格1</td>
    <td>单元格2</td>
  </tr>
  <tr>
    <td>单元格3</td>
    <td>单元格4</td>
  </tr>
</table>

4. 表格样式: 可以使用CSS来为表格添加样式,如设置边框、背景颜色等。以下是一个简单的示例:

htmlCopy code<style>
  table {
    border-collapse: collapse;
    width: 100%;
  }
  td {
    border: 1px solid black;
    padding: 8px;
    text-align: center;
  }
</style>


5. 示例应用: 以下示例演示了如何使用<tr>和<td>标签创建一个包含姓名、年龄和城市的简单表格:

htmlCopy code<!DOCTYPE html>
<html>
<head>
  <style>
    table {
      border-collapse: collapse;
      width: 100%;
    }
    td {
      border: 1px solid black;
      padding: 8px;
      text-align: center;
    }
  </style>
</head>
<body>

<table>
  <tr>
    <td>姓名</td>
    <td>年龄</td>
    <td>城市</td>
  </tr>
  <tr>
    <td>张三</td>
    <td>25</td>
    <td>北京</td>
  </tr>
  <tr>
    <td>李四</td>
    <td>30</td>
    <td>上海</td>
  </tr>
  <tr>
    <td>王五</td>
    <td>28</td>
    <td>广州</td>
  </tr>
</table>

</body>
</html>

6. 书籍参考:

  • "HTML and CSS: Design and Build Websites" by Jon Duckett
  • "Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics" by Jennifer Niederst Robbins


7. 总结: 通过本文的介绍,我们了解了HTML中<tr>和<td>标签的基本用法,以及如何创建简单的表格和添加样式。使用这些标签,我们可以轻松地创建具有结构和内容的网页表格,提升页面的可读性和可视性。

文由ScriptEcho平台提供技术支持

项目地址:传送门

Plotly.js 动态生成 HTML 表格

应用场景介绍

在数据分析和可视化领域,经常需要以表格的形式展示数据。Plotly.js 是一款功能强大的 JavaScript 库,不仅可以创建交互式图表,还可以动态生成 HTML 表格。

代码基本功能介绍

本代码使用 Plotly.js 创建了一个动态 HTML 表格,可以显示多行多列数据。表格具有以下特点:

  • 可自定义表头和单元格内容
  • 支持设置表头和单元格样式,包括颜色、字体和对齐方式
  • 表格可以根据数据动态更新

功能实现步骤及关键代码分析说明

1. 导入 Plotly.js 库

import Plotly from 'plotly.js-dist'

2. 定义表格数据

var values = [
  ['Salaries', 'Office', 'Merchandise', 'Legal', '<b>TOTAL</b>'],
  [1200000, 20000, 80000, 2000, 12120000],
  [1300000, 20000, 70000, 2000, 130902000],
  [1300000, 20000, 120000, 2000, 131222000],
  [1400000, 20000, 90000, 2000, 14102000]]

values 数组包含了表格的数据,其中第一行是表头,其余行是数据行。

3. 定义表格样式

var headerColor = "grey";
var rowEvenColor = "lightgrey";
var rowOddColor = "white";

这些变量用于定义表头和单元格的样式,包括颜色和填充颜色。

4. 创建 Plotly 表格对象

var data = [{
  type: 'table',
  header: {
    values: [["<b>EXPENSES</b>"], ["<b>Q1</b>"],
                 ["<b>Q2</b>"], ["<b>Q3</b>"], ["<b>Q4</b>"]],
    align: "center",
    line: {width: 1, color: 'black'},
    fill: {color: headerColor},
    font: {family: "Arial", size: 12, color: "white"}
  },
  cells: {
    values: values,
    align: "center",
    line: {color: "black", width: 1},
    fill: {color: [[rowOddColor,rowEvenColor,rowOddColor,
                          rowEvenColor,rowOddColor]]},
    font: {family: "Arial", size: 11, color: ["black"]}
  }
}]

data 对象定义了表格的结构和样式。header 对象定义了表头,cells 对象定义了单元格。

5. 绘制表格

Plotly.newPlot('myDiv', data);

Plotly.newPlot() 函数将表格绘制到指定容器中,在本例中容器的 ID 为 myDiv。

总结与展望

开发这段代码让我对 Plotly.js 的表格功能有了更深入的了解。我学到了如何动态生成 HTML 表格,并使用样式对其进行自定义。

未来,该表格功能可以拓展和优化:

  • 支持表格数据的动态更新
  • 添加交互功能,例如单元格排序和过滤
  • 优化表格的响应式布局,以适应不同屏幕尺寸
  • 更多组件:

获取更多Echos

本文由ScriptEcho平台提供技术支持

项目地址:传送门

微信搜索ScriptEcho了解更多