• 使用 Go 和 Excelize 构建电子表格


    分析任何规模的数据的重要性怎么强调都不为过。 我们日常生活的几乎每个部分都是数据驱动的,作为开发人员,在构建任何合理大小的应用程序时,首要考虑的因素之一是使用什么数据库以及如何构建数据。

    但是,它不仅限于存储数据,您还需要通过提取并以任何非技术人员都能理解的格式呈现这些数据来理解这些数据。 例如,电子商务企业每天都会产生大量数据,这意味着我们需要跟踪产品库存、月收入、财务报表等信息。 目前,有许多服务提供这些类型的解决方案,但快速提取和呈现数据的最简单方法之一是生成电子表格或 CSV 文件。

    在本文中,我们将探索如何在 Go 中创建电子表格,方法是构建一个简单的费用报告并使用 Excelize 库将其导出为 CSV 格式。 中找到本教程的完整代码 您可以在 GitHub 存储库 。 让我们开始吧!

    • 生成费用报告

    • 创建工作表

    • 添加数据和创建样式

    • 保存工作表

    • 导出为 CSV

    生成费用报告

    费用报告是一份详细的清单,尽可能详细地显示公司在一段时间内的支出。 我们将构建一个类似于下图中的报告:

    创建工作表

    要开始使用,请确保您已安装 Go ≥v1.15 并创建一个新的项目文件夹。 在项目目录中,创建一个 main.go文件并使用以下代码初始化 Go 模块:

    $ mkdir 
    $ cd 
    $ touch main.go
    $ go mod init github.com//

    The main.go file is the entry point of our Go application, and we use the generated go.mod file for dependency management. Next, install the Excelize library by running the command below:

    $ go get github.com/xuri/excelize/v2

    Excelize is a Go library with no dependencies that provides primitives for reading and writing to XLSX files and other supported spreadsheet file formats. In your main.go file, import Excelize, create a new file, create a new worksheet, and set the active sheet to the worksheet you just created:

    package main
    import "github.com/xuri/excelize/v2"
    const (
       SheetName = "Expense Report"
    )
    func main() {
       var err error
       f := excelize.NewFile()
       index := f.NewSheet("Sheet1")
       f.SetActiveSheet(index)
       f.SetSheetName("Sheet1", SheetName)
    }

    添加数据和创建样式

    创建工作表后,我们可以开始构建报告。 首先,我们将设置一些尺寸以适应我们想要的结构,如下图所示。 将以下代码块添加到您的 main功能:

    //main.go
    //...
       err = f.SetColWidth(SheetName, "A", "A", 6)
       err = f.SetColWidth(SheetName, "H", "H", 6)
       err = f.SetColWidth(SheetName, "B", "B", 12)
       err = f.SetColWidth(SheetName, "C", "C", 16)
       err = f.SetColWidth(SheetName, "D", "D", 13)
       err = f.SetColWidth(SheetName, "E", "E", 15)
       err = f.SetColWidth(SheetName, "F", "F", 22)
       err = f.SetColWidth(SheetName, "G", "G", 13)

    我们只需要列 A至 G对于报告,所以我们使用 SetColWidth调整列的宽度以满足我们的要求。 你会注意到我们已经定义了一个 error变量到顶部 main函数,我们只是将

  • 相关阅读:
    vue 01
    修改和完成SpringSecurity的登录功能
    ChatGPT绘图指南:DALL.E3玩法大全(一)
    063:mapboxGL常见错误:Style is not done loading(原因及解决办法)
    whee: 美图秀秀出品AI绘画图片创作工具平台
    6.10版本内核体验
    Linux安装Oracle数据库
    广义表基础知识
    redis未授权访问漏洞的利用
    VS+Qt+C++ GDAL读取tif图像数据显示
  • 原文地址:https://blog.csdn.net/weixin_47967031/article/details/127113888