当前位置: 首页 > news >正文

使用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模板

导入功能请看下一篇文章

http://www.dtcms.com/a/89377.html

相关文章:

  • 2025年- G29-Lc103-3. 最长无重复字符的子字符串--java版
  • PHP接口开发:从基础到高级的全面指南
  • 算法题(107):function
  • Windows 10/11 使用 VSCode + SSH 免密远程连接 Ubuntu 服务器(指定端口)
  • matlab使用fmincon开加速
  • 光电效应及普朗克常数的测定数据处理 Python实现
  • 时隔多年,终于给它换了皮肤,并正式起了名字
  • 洛谷: P1443 马的遍历
  • OpenHarmony 入门——ArkUI 跨页面数据同步和应用全局单例的UI状态存储AppStorage 小结(三)
  • QML控件 - Slider
  • python脚本处理excel文件
  • 如何选择?Postman vs JMeter 对比介绍
  • zynq7020 最小ps环境速通
  • 开源大模型使用总结
  • Unity选择框(魔兽争霸3)
  • 文生图语义识别插件使用(controlnet)
  • STM32F103_LL库+寄存器学习笔记01 - 梳理CubeMX生成的LL库最小的裸机系统框架
  • immortalwrt一键istoreOS风格化
  • Unity射击游戏手榴弹笔记
  • 广告推荐算法 - 学习笔记
  • AL11和SM69 文件服务器中创建文件夹
  • 二叉树练习
  • 垃圾短信分类
  • 深度学习篇---卷积网络结构
  • 23种设计模式-创建型模式-单例
  • WPF 与 C# 开发深度剖析
  • 如何避免权限分配不合理导致的信息安全风险?
  • 【天梯赛】L2-012(实战反思代码实现)
  • 压测工具开发(一)——使用Qt Designer构建简单界面
  • Java编程思想:为何有时要将子类对象赋值给父类引用