整合营销服务商

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

免费咨询热线:

2.3K star!解锁在线表格—FortuneSheet

家好,我是小墨,在我们日常开发中,能否轻松处理复杂数据,经常取决于有没有一个强大的表格工具。如果有一个在线版的 Excel 或 Google Sheets,不仅功能丰富,还能快速集成到你的项目中,而且“开箱即用”,让你省去繁琐的配置步骤。这就是本期要介绍的开源项目——FortuneSheet。

项目简介

FortuneSheet 是一个类似 Excel 和 Google Sheets 的嵌入式 Javascript 表格库。这个项目继承自 Luckysheet 的代码基础,但它的开发团队做了大量的改进工作,把它转换成了 TypeScript,同时解决了许多原项目中的设计问题。它的目标是打造一个功能强大、易于维护且使用简单的在线表格工具。开发者们希望,通过 FortuneSheet,用户可以轻松实现各种复杂的表格操作,就像用魔法一样简单。

功能特点

1、整个项目都用 TypeScript 开发。

2、可以在一个页面上创建多个表格实例,完美适应复杂应用的需求。而且,FortuneSheet 完全摒弃了 jQuery,改用 React 或 Vue 来管理 DOM 和状态,这让它更轻量化,性能也更优。

3、丰富的表格操作,不管是合并单元格、数据验证,还是复杂的公式计算,FortuneSheet 都游刃有余。你还可以使用类似 Excel 的条件格式,高亮特定的数据,让表格数据一目了然。

4、完美适配移动端,FortuneSheet 都能提供丝滑的表格体验。它还支持多用户实时协同编辑,让团队合作变得前所未有的顺畅。

5、支持导入导出,提供了强大的数据透视表功能,帮你轻松进行数据分析。

使用步骤

1、安装库

npm install @fortune-sheet/react

2、在 HTML 文件中添加一个容器来渲染表格:

<style>
  html, body, #app-container {
    width: 100%;
    height: 100%;
  }
</style>
<div id="app-container"></div>

小贴士:width 和 height 的值不一定要是 100%,但一定要有值,否则表格区域可能无法显示。

3、在你React 组件中,使用 FortuneSheet 的 Workbook 组件来渲染表格:

import React from 'react';
import ReactDOM from 'react-dom';
import { Workbook } from "@fortune-sheet/react";
import "@fortune-sheet/react/dist/index.css";

// 为我们的表格创建一些样例数据
const sampleData = [
  { name: "Sheet1", data: [[{ v: "Hello" }, { v: "FortuneSheet!" }]] }
];

ReactDOM.render(
  <Workbook data={sampleData} />,
  document.getElementById('app-container')
);

4、通过使用 API后端存储实现实时协同编辑。用户在表格上进行操作时,生成一个 op 列表,通过 onOp 回调发送给后端服务器。

[
    {
        "op": "replace",
        "index": "0",
        "path": ["data", 1, 0, "bl"],
        "value": 1
    }
]

项目地址

https://github.com/ruilisi/fortune-sheet

总结

FortuneSheet 作为一个极具潜力的在线表格组件,特别适合那些需要强大表格功能的项目。无论你是构建企业级应用还是个人项目,FortuneSheet 都能为你提供丰富的功能和极大的灵活性,让你在表格处理上如虎添翼。欢迎在评论区分享你的想法和使用经验!

able表格一种早期十分流行的网页布局方式,现在基本都是div+css的布局方式,表格一般由tr(行)td(列)标签组成

表格的常用属性:1)border:表示表格边框线2)cellpadding:单元格内容和内边框之间的距离3)cellspacing:表示单元格之间的间距4)bgcolor:背景颜色5)width:宽度6)height:高度 等等

表格

没有设置表格width与height属性,表格宽高暂时由单元格的内容的宽高决定,其他暂不考虑

想要消除单元格间距与内容与单元格内边框的间距设置属性cellspacing,cellpadding为"0"

<!DOCTYPE html>
<html>
<head>
    <title>表格</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
    <table border="1px" cellspacing="0" cellpadding="10">
        <tr>
            <td>一</td>
            <td>二</td>
            <td>三</td>
        </tr>
        <tr>
            <td>C#</td>
            <td>Asp.net</td>
            <td>MVC</td>
        </tr>
        <tr>
            <td>HTML</td>
            <td>JavaScript</td>
            <td>JQuery</td>
        </tr>
    </table>
</body>
</html>

tr常用属性

align:单元格内容的水平对齐方式,属性值:1)left2左侧)right右侧3)center中间

valign:单元格内容的垂直对齐方式,属性值1)top上边2)bottom下边3)middle中间

rowspan与colspan:将单元格进行行与行或者列与列的合并

这些属性以后都会写在css样式表中;制作显示一个对齐方式与行或列的合并的表格

<!DOCTYPE html>
<html>
<head>
    <title>表格</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
    <table border="1" cellspacing="0" cellpadding="0" width="500" height="300">
        <tr>
            <td colspan="3" align="center">课程表</td><!--合并三行-->
        </tr>
        <tr align="center"><!--单元格内容居中显示-->
            <td>星期一</td>
            <td>星期二</td>
            <td>星期三</td>
        </tr>
        <tr align="center">
            <td>HTML</td>
            <td rowspan="2">.NET</td><!--合并两列-->
            <td>JavaScript</td>
        </tr>
        <tr align="center">
            <td>CSS</td>
            <td>JQuery</td>
        </tr>
    </table>
</body>
</html>

显示效果

表格中设置的属性虽然会继承,但是子标签单独设置了属性,就会覆盖父标签的属性;比如tr

设置align="center",此tr中的子标签td单独设置了align="left",最终效果是此td内容居左显示

编程中,有时候需要以表格的形式输出数据,使其更易于阅读和理解。Python提供了多种方法来创建和输出表格数据。本文将介绍如何使用不同的方法制作输出表格,并提供详细的示例代码,以帮助大家更好地理解和应用这些技巧。

使用制表符(Tab)分隔列

最简单的方法是使用制表符(Tab)字符来分隔列,这种方式适用于文本输出。

以下是一个示例:

# 数据
data = [
    ["Name", "Age", "City"],
    ["Alice", "30", "New York"],
    ["Bob", "25", "Los Angeles"],
    ["Charlie", "35", "Chicago"]
]

# 输出表格
for row in data:
    print("\t".join(row))

在这个示例中,首先定义了一个包含表格数据的列表data,然后使用join()方法将每一行的数据以制表符分隔并输出到屏幕上。

使用字符串格式化

Python的字符串格式化功能可以更灵活地控制输出表格的样式。可以使用str.format()方法或f-字符串来格式化输出。

以下是一个示例:

# 数据
data = [
    ["Name", "Age", "City"],
    ["Alice", "30", "New York"],
    ["Bob", "25", "Los Angeles"],
    ["Charlie", "35", "Chicago"]
]

# 输出表格
for row in data:
    print("{:<10} {:<5} {:<10}".format(*row))

在这个示例中,使用字符串格式化来定义每列的宽度,并使用<来指定左对齐。这样可以确保表格数据在列中对齐。

使用第三方库

如果需要更复杂的表格操作,可以考虑使用第三方库,如tabulateprettytable。这些库提供了更多的功能和选项来创建和输出表格。

以下是使用tabulate库的示例:

from tabulate import tabulate

# 数据
data = [
    ["Name", "Age", "City"],
    ["Alice", "30", "New York"],
    ["Bob", "25", "Los Angeles"],
    ["Charlie", "35", "Chicago"]
]

# 输出表格
print(tabulate(data, headers="firstrow", tablefmt="grid"))

这个示例中,首先安装tabulate库(使用pip install tabulate),然后使用它的tabulate()函数来输出表格。可以指定不同的输出格式,例如,tablefmt="grid"用于创建网格形式的表格。

使用HTML表格

如果需要在网页上显示表格,可以考虑使用HTML表格。

以下是一个示例,演示如何使用Python生成HTML表格:

# 数据
data = [
    ["Name", "Age", "City"],
    ["Alice", "30", "New York"],
    ["Bob", "25", "Los Angeles"],
    ["Charlie", "35", "Chicago"]
]

# 生成HTML表格
html_table = "<table>"
for row in data:
    html_table += "<tr>"
    for cell in row:
        html_table += "<td>{}</td>".format(cell)
    html_table += "</tr>"
html_table += "</table>"

# 输出HTML
print(html_table)

在这个示例中,使用循环生成HTML标签,以创建包含表格数据的HTML表格。这个方法适用于在网页上显示数据。

使用 Pandas 库创建表格

Pandas 是一个强大的数据分析库,它提供了灵活的数据结构和数据操作功能,包括表格的创建和处理。

以下是一个示例,演示如何使用 Pandas 创建和输出表格:

import pandas as pd

# 数据
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "Los Angeles"],
    ["Charlie", 35, "Chicago"]
]

# 创建DataFrame对象
df = pd.DataFrame(data[1:], columns=data[0])

# 输出表格
print(df)

在这个示例中,首先导入 Pandas 库,并将表格数据存储在一个列表中。然后,使用 Pandas 的 DataFrame 对象来创建表格,并通过 print() 函数输出。Pandas 提供了丰富的数据操作和分析功能,可以轻松处理大规模数据集。

使用 PrettyTable 库创建表格

另一个创建和输出表格的库是 PrettyTable,它提供了一种简单的方式来创建漂亮的文本表格。

以下是一个示例:

from prettytable import PrettyTable

# 数据
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "Los Angeles"],
    ["Charlie", 35, "Chicago"]
]

# 创建PrettyTable对象
table = PrettyTable(data[0])
for row in data[1:]:
    table.add_row(row)

# 输出表格
print(table)

在这个示例中,首先安装 PrettyTable 库(使用 pip install prettytable),然后创建一个 PrettyTable 对象,并使用 add_row() 方法添加行数据。最后,通过 print() 函数输出漂亮的文本表格。

使用终端表格库创建表格

如果希望在终端中以更美观的方式显示表格,可以考虑使用终端表格库,如 terminaltables

以下是一个示例:

from terminaltables import AsciiTable

# 数据
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "Los Angeles"],
    ["Charlie", 35, "Chicago"]
]

# 创建AsciiTable对象
table = AsciiTable(data)

# 输出表格
print(table.table)

在这个示例中,首先安装 terminaltables 库(使用 pip install terminaltables),然后创建一个 AsciiTable 对象,并通过 table 属性输出表格。这种方式在终端中以更漂亮的方式显示表格。

总结

制作输出表格在各种情况下都是有用的,无论是文本报告、数据分析还是终端应用。Python 提供了多种方法和库来创建和输出表格,可以根据具体需求选择最适合的方法。希望本文中的示例代码能帮助大家更好地处理表格数据,并提高编程效率。无论你是初学者还是有经验的开发者,掌握这些表格处理技巧都将是一个有用的技能。