go语言读取Excel表格中的数据

在Go语言中,你可以使用第三方库来读取Excel文件。一个常用的库是github.com/tealeg/xlsx,它提供了处理Excel文件的功能。以下是一个简单的例子,演示如何使用该库读取Excel文件:

导入库

首先,你需要安装github.com/tealeg/xlsx库。可以通过以下命令在终端中安装:

go get github.com/tealeg/xlsx

基本用法

然后,你可以使用以下示例代码来读取Excel文件:

package main

import (
	"fmt"
	"github.com/tealeg/xlsx"
)

func main() {
	// 打开Excel文件
	excelFileName := "path/to/your/excel/file.xlsx"
	xlFile, err := xlsx.OpenFile(excelFileName)
	if err != nil {
		fmt.Printf("Error opening Excel file: %s\n", err)
		return
	}

	// 遍历每个工作表
	for _, sheet := range xlFile.Sheets {
		fmt.Printf("Sheet Name: %s\n", sheet.Name)

		// 遍历每一行
		for _, row := range sheet.Rows {
			// 遍历每个单元格
			for _, cell := range row.Cells {
				text := cell.String()
				fmt.Printf("%s\t", text)
			}
			fmt.Println()
		}
	}
}

确保将"path/to/your/excel/file.xlsx"替换为你的实际Excel文件的路径。此代码将遍历Excel文件的每个工作表、每一行和每个单元格,并将单元格内容打印到控制台。

封装

一般我们会习惯把读取Excel的这种常用的模块封装成函数:

// ReadExcelToMap 读取Excel文件并返回一个map
func ReadExcelToMap(excelFileName string) (map[string]interface{}, error) {
	resultMap := make(map[string]interface{})

	// 打开Excel文件
	xlFile, err := xlsx.OpenFile(excelFileName)
	if err != nil {
		return nil, fmt.Errorf("Error opening Excel file: %s", err)
	}

	// 遍历每个工作表
	for _, sheet := range xlFile.Sheets {
		sheetMap := make(map[string]interface{})

		// 遍历每一行
		for rowIndex, row := range sheet.Rows {
			rowMap := make(map[string]string)

			// 遍历每个单元格
			for colIndex, cell := range row.Cells {
				text := cell.String()
				colLetter := xlsx.ColIndexToLetters(colIndex)
				rowMap[colLetter] = text
			}

			// 使用行号作为键,将该行的map添加到工作表的map中
			sheetMap[fmt.Sprintf("Row%d", rowIndex+1)] = rowMap
		}

		// 使用工作表名作为键,将该工作表的map添加到结果map中
		resultMap[sheet.Name] = sheetMap
	}

	return resultMap, nil
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星宇星静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值