You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言无结构体定义实现Excel转JSON字符串需求咨询

无结构体/列标题依赖的Excel转JSON方案(Go语言)

你可以直接用github.com/xuri/excelize/v2实现需求——它完全支持不依赖结构体、不依赖列标题的原始Excel数据读取与JSON转换,之前的调研可能没挖到这个用法。

核心实现思路

直接遍历Excel工作表的所有行和单元格,把原始单元格值按二维数组的结构组织,再通过Go标准库的encoding/json序列化为JSON字符串。全程不需要预定义结构体,也不需要依赖列标题。

完整代码示例

package main

import (
	"encoding/json"
	"fmt"
	"log"

	"github.com/xuri/excelize/v2"
)

func main() {
	// 目标Excel文件路径
	filePath := "your_file.xlsx"

	// 打开文件
	f, err := excelize.OpenFile(filePath)
	if err != nil {
		log.Fatalf("打开文件失败: %v", err)
	}
	defer f.Close()

	// 获取第一个工作表(可根据需求指定工作表名称)
	sheetName := f.GetSheetName(0)

	// 读取所有行数据
	rows, err := f.GetRows(sheetName)
	if err != nil {
		log.Fatalf("读取行数据失败: %v", err)
	}

	// 构造原始数据的二维切片
	var rawData [][]interface{}
	for _, row := range rows {
		rowData := make([]interface{}, len(row))
		for idx, cellValue := range row {
			rowData[idx] = cellValue
		}
		rawData = append(rawData, rowData)
	}

	// 转换为格式化后的JSON字符串
	jsonBytes, err := json.MarshalIndent(rawData, "", "  ")
	if err != nil {
		log.Fatalf("JSON序列化失败: %v", err)
	}

	// 输出或保存JSON
	fmt.Println(string(jsonBytes))
}

进阶优化:保留单元格原始类型

上面的示例会把所有单元格值转成字符串,如果需要保留数字、日期等原始类型,可以结合GetCellType做类型转换:

import "strconv"
import "time"

// 替换单元格值处理逻辑
cellAddr, _ := excelize.CoordinatesToCellName(idx+1, rowIdx+1) // 列、行号转单元格地址(excelize为1起始)
cellType, _ := f.GetCellType(sheetName, cellAddr)
switch cellType {
case excelize.CellTypeNumeric:
	numVal, _ := f.GetCellValue(sheetName, cellAddr)
	floatVal, _ := strconv.ParseFloat(numVal, 64)
	rowData[idx] = floatVal
case excelize.CellTypeString:
	rowData[idx] = cellValue
case excelize.CellTypeDate:
	dateVal, _ := f.GetCellValue(sheetName, cellAddr)
	timeVal, _ := excelize.ExcelDateToTime(dateVal, false)
	rowData[idx] = timeVal.Format(time.RFC3339)
default:
	rowData[idx] = cellValue
}

使用说明

  1. 先安装依赖:go get github.com/xuri/excelize/v2
  2. 把代码中的your_file.xlsx替换为你的目标Excel文件路径
  3. 运行代码即可得到原始数据对应的JSON字符串

内容的提问来源于stack exchange,提问作者Pramit Pakhira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:22:52