使用go实现下载导入Excel模板

github.com/360EntSecGroup-Skylar/excelize

github.com/tealeg/xlsx

可以使用以上两个库

代码如下:

复制代码
// DownLoadTemplate 创建并下载一个 Excel 模板
func (c *TemplateController) DownLoadTemplate() {
	var file *xlsx.File
	var sheet *xlsx.Sheet
	var row *xlsx.Row
	var cell *xlsx.Cell

	// 创建新的 Excel 文件
	file = xlsx.NewFile()
	sheet, _ = file.AddSheet("Template")

	// 设置表格头
	headers := []string{"编号", "样件码", "创建人", "产品型号", "备注"}
	row = sheet.AddRow()
	for _, header := range headers {
		cell = row.AddCell()
		cell.Value = header
	}

	// 保存路径
	if !FileExists("static/tmp") {
		os.MkdirAll("static/tmp", os.ModePerm)
	}
	filename := "static/tmp/template_" + fmt.Sprintf("%d", time.Now().Unix()) + ".xlsx"
	err := file.Save(filename)
	if err != nil {
		fmt.Println(err)
		c.jsonResult(JRCodeFailed, "文件保存失败!", 0)
		return
	}
	defer os.Remove(filename) // 确保在下载后删除文件

	// 设置下载文件的名称
	now := time.Now()
	nowStr := fmt.Sprintf("%d%d%d%d%d%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
	servername := "template_" + nowStr + ".xlsx"

	// 发送文件到浏览器下载
	c.Ctx.Output.Download(filename, servername)
}

// FileExists 检查文件或目录是否存在
func FileExists(filename string) bool {
	_, err := os.Stat(filename)
	return !os.IsNotExist(err)
}

在示例中,可以从浏览器下载一个由你自由定义的excel模板

导入功能请看下一篇文章

相关推荐
v_for_van12 分钟前
C语言__attribute__
服务器·c语言·开发语言·mcu·嵌入式·嵌入式实时数据库
工业一体机老司机34 分钟前
Python实现工业一体机Modbus-TCP通信-从协议解析到多设备轮询实战
开发语言·python·tcp/ip
fpcc40 分钟前
跟我学C++中级篇—static_assert和assert
开发语言·c++
2401_8858850441 分钟前
国际语音php接口代码示例:PHP使用cURL快速调用语音发送API
android·开发语言·前端·人工智能·python·php·语音识别
gis开发之家1 小时前
Spring Boot 4 深度解析,JdbcTemplate 实战——轻量级数据库操作方案
java·数据库·spring boot·后端
萌动的小火苗1 小时前
Linux进程线程面试题【无答案】
linux·运维·服务器·c语言·开发语言
Zenova EdgeOS1 小时前
C++ 工业边缘 Boost.Asio 高级实战
开发语言·c++·边缘计算·工业网关
mqiqe1 小时前
AgentScope Java 2.0 技能仓库(Skill Repository)完全实战指南
java·开发语言·elasticsearch
人工干智能1 小时前
科普:Python中的生成器——带`yield`的函数
开发语言·python
whcyhhh1 小时前
头歌实践教学平台:数据科学与大数据技术导论(十四)
大数据·开发语言·python