分析任何规模的数据的重要性怎么强调都不为过。 我们日常生活的几乎每个部分都是数据驱动的,作为开发人员,在构建任何合理大小的应用程序时,首要考虑的因素之一是使用什么数据库以及如何构建数据。
但是,它不仅限于存储数据,您还需要通过提取并以任何非技术人员都能理解的格式呈现这些数据来理解这些数据。 例如,电子商务企业每天都会产生大量数据,这意味着我们需要跟踪产品库存、月收入、财务报表等信息。 目前,有许多服务提供这些类型的解决方案,但快速提取和呈现数据的最简单方法之一是生成电子表格或 CSV 文件。
在本文中,我们将探索如何在 Go 中创建电子表格,方法是构建一个简单的费用报告并使用 Excelize 库将其导出为 CSV 格式。 中找到本教程的完整代码 您可以在 GitHub 存储库 。 让我们开始吧!
-
生成费用报告
-
创建工作表
-
添加数据和创建样式
-
保存工作表
-
导出为 CSV
生成费用报告
费用报告是一份详细的清单,尽可能详细地显示公司在一段时间内的支出。 我们将构建一个类似于下图中的报告:
创建工作表
要开始使用,请确保您已安装 Go ≥v1.15 并创建一个新的项目文件夹。 在项目目录中,创建一个 main.go文件并使用以下代码初始化 Go 模块:
$ mkdir <project-name> $ cd <project-name> $ touch main.go $ go mod init github.com/<your-username>/<project-name>
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函数,我们只是将