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

关于自己公司的网站怎么做免费域名 网站

关于自己公司的网站怎么做,免费域名 网站,凡科网站产品导航怎么做,宝安建设工程交易中心文章目录 1 简介2 相关需求与实现2.1 导出带单元格合并的excel文件2.2 导出增加自动换行和固定列宽的excel文件 1 简介 之前整理过使用Excelize导出原始excel文件与增加数据校验的excel导出。【go】Excelize处理excel表 带数据校验的文件导出 本文整理使用Excelize导出带单元…

文章目录

  • 1 简介
  • 2 相关需求与实现
    • 2.1 导出带单元格合并的excel文件
    • 2.2 导出增加自动换行和固定列宽的excel文件

1 简介

  • 之前整理过使用Excelize导出原始excel文件与增加数据校验的excel导出。【go】Excelize处理excel表 带数据校验的文件导出

  • 本文整理使用Excelize导出带单元格合并的excel文件与导出增加自动换行和固定列宽的excel文件

2 相关需求与实现

2.1 导出带单元格合并的excel文件

  • 需求:入参是一个map,其键是每个sheet页的名字,其值是一个二维切片。在每个sheet页中依次写入切片中的数据。返回文件名和错误信息。
    合并单元格:前三列,如果此格和上行格相同,则合并
  • 代码:
// 增加合并单元格的文件导出
func WriteExcelMerge(datas map[string][][]string) (string, error) {file := excelize.NewFile()for sheetName, data := range datas {index, _ := file.NewSheet(sheetName)for i, row := range data {for j, val := range row {// 列行数字索引转excel坐标索引cellName, _ := excelize.CoordinatesToCellName(j+1, i+1)// 设置,写入file.SetCellValue(sheetName, cellName, val)}}// 创建表格file.SetActiveSheet(index)}for sheet, _ := range datas {// 获取表格中的所有行rows, err := file.GetRows(sheet)if err != nil {return "", err}for i := 1; i < len(rows); i++ {currRow := rows[i]prevRow := rows[i-1]// 判断前3列是否相等if currRow[0] == prevRow[0] &&currRow[1] == prevRow[1] &&currRow[2] == prevRow[2] {// 合并相邻单元格for j := 1; j <= 3; j++ {cellName1, _ := excelize.CoordinatesToCellName(j, i) // 列,行cellName2, _ := excelize.CoordinatesToCellName(j, i+1)err := file.MergeCell(sheet, cellName1, cellName2)if err != nil {return "", err}}}}}filename := "aaa" + ".xlsx"// 创建目录_, err := os.ReadDir("aaa/")if err != nil {// 不存在就创建err = os.MkdirAll("aaa/", fs.ModePerm)if err != nil {return "", err}}file.DeleteSheet("Sheet1")err = file.SaveAs("aaa/" + filename)if err != nil {return "", err}return filename, nil
}func main() {datas := make(map[string][][]string)datas["xxx"] = [][]string{{"a", "b", "c", "D1", "E1", "G1", "H1", "I1"}, {"a", "b", "c", "D1"}, {"a", "b", "c", "D1"}}datas["yyy"] = [][]string{{"X1", "Y1", "Z1"}, {"X2", "Y2", "Z2"}, {"X3", "Y3", "Z3"}}fileName, err := WriteExcelMerge(datas)if err != nil {fmt.Println("Write excel error: ", err)return}fmt.Println("Write excel success, file name is: ", fileName)
}
  • 输出文件:
    合并:
    在这里插入图片描述
    未合并:在这里插入图片描述

2.2 导出增加自动换行和固定列宽的excel文件

  • 需求:同上
    其中,第一列设置自动换行+固定列宽20;第二列固定列宽20
  • 代码:
func WriteExcelAuto(datas map[string][][]string, widths map[string]float64, wrapTexts []string) (string, error) {file := excelize.NewFile()// 自动换行styleID, err := file.NewStyle(&excelize.Style{Alignment: &excelize.Alignment{WrapText: true,},})if err != nil {return "", err}for sheetName, data := range datas {index, _ := file.NewSheet(sheetName)for i, row := range data {for j, val := range row {// 列行数字索引转excel坐标索引cellName, _ := excelize.CoordinatesToCellName(j+1, i+1)// 设置,写入file.SetCellValue(sheetName, cellName, val)}}// 设置自动换行for _, v := range wrapTexts {file.SetColStyle(sheetName, v, styleID)}// 设置列宽for k, v := range widths {file.SetColWidth(sheetName, k, k, v)}// 创建表格file.SetActiveSheet(index)}filename := "aaa" + ".xlsx"// 创建目录_, err = os.ReadDir("aaa/")if err != nil {// 不存在就创建err = os.MkdirAll("aaa/", fs.ModePerm)if err != nil {return "", err}}file.DeleteSheet("Sheet1")err = file.SaveAs("aaa/" + filename)if err != nil {return "", err}return filename, nil
}func main() {datas := make(map[string][][]string)datas["xxx"] = [][]string{{"AAAAAAAAAAAAAAAAAAAAA", "B1", "C1", "d1", "E1", "G1", "H1", "I1"}, {"A2", "B2", "C2"}, {"A3", "B3", "C3"}}datas["yyy"] = [][]string{{"X1", "Y1", "Z1"}, {"X2", "Y2", "Z2"}, {"X3", "Y3", "Z3"}}widths := map[string]float64{"A": 20,"B": 20,}wraps := []string{"A",}fileName, err := WriteExcelAuto(datas, widths, wraps)if err != nil {fmt.Println("Write excel error: ", err)return}fmt.Println("Write excel success, file name is: ", fileName)
}
  • 输出文件:
    在这里插入图片描述

文章转载自:
http://gop.nrpp.cn
http://intersatellite.nrpp.cn
http://apron.nrpp.cn
http://nullifidian.nrpp.cn
http://embassador.nrpp.cn
http://stepper.nrpp.cn
http://jawline.nrpp.cn
http://lah.nrpp.cn
http://functionalism.nrpp.cn
http://debrett.nrpp.cn
http://dilator.nrpp.cn
http://sestertius.nrpp.cn
http://pyrographer.nrpp.cn
http://sepia.nrpp.cn
http://algebraical.nrpp.cn
http://dewret.nrpp.cn
http://wram.nrpp.cn
http://dengue.nrpp.cn
http://sodom.nrpp.cn
http://gange.nrpp.cn
http://satyriasis.nrpp.cn
http://veronal.nrpp.cn
http://attention.nrpp.cn
http://saddlery.nrpp.cn
http://choir.nrpp.cn
http://below.nrpp.cn
http://surrenderee.nrpp.cn
http://bakeapple.nrpp.cn
http://iatrochemical.nrpp.cn
http://assuan.nrpp.cn
http://claustrophobe.nrpp.cn
http://tumefacient.nrpp.cn
http://memoir.nrpp.cn
http://endemically.nrpp.cn
http://fatidical.nrpp.cn
http://watchout.nrpp.cn
http://ebullioscope.nrpp.cn
http://transfinalization.nrpp.cn
http://oversell.nrpp.cn
http://ferrotitanium.nrpp.cn
http://garreteer.nrpp.cn
http://decantation.nrpp.cn
http://jibber.nrpp.cn
http://consternation.nrpp.cn
http://amphetamine.nrpp.cn
http://ampelopsis.nrpp.cn
http://heehaw.nrpp.cn
http://luck.nrpp.cn
http://galvanizer.nrpp.cn
http://crinoidea.nrpp.cn
http://inkyo.nrpp.cn
http://kaiserin.nrpp.cn
http://tobruk.nrpp.cn
http://speciously.nrpp.cn
http://implementary.nrpp.cn
http://chicquest.nrpp.cn
http://resultless.nrpp.cn
http://modenese.nrpp.cn
http://acousticon.nrpp.cn
http://dipody.nrpp.cn
http://noviciate.nrpp.cn
http://flamingo.nrpp.cn
http://aboideau.nrpp.cn
http://ladik.nrpp.cn
http://actinia.nrpp.cn
http://okey.nrpp.cn
http://standoffishness.nrpp.cn
http://lungan.nrpp.cn
http://lithosol.nrpp.cn
http://disulfoton.nrpp.cn
http://exasperating.nrpp.cn
http://crunchy.nrpp.cn
http://equator.nrpp.cn
http://abustle.nrpp.cn
http://sylva.nrpp.cn
http://markhor.nrpp.cn
http://yenan.nrpp.cn
http://phs.nrpp.cn
http://backpack.nrpp.cn
http://bureaucratese.nrpp.cn
http://programer.nrpp.cn
http://feeder.nrpp.cn
http://knickknack.nrpp.cn
http://mcg.nrpp.cn
http://militarize.nrpp.cn
http://pennsylvanian.nrpp.cn
http://lexigram.nrpp.cn
http://boorish.nrpp.cn
http://immature.nrpp.cn
http://mts.nrpp.cn
http://dao.nrpp.cn
http://wardmote.nrpp.cn
http://snowshed.nrpp.cn
http://heliochrome.nrpp.cn
http://haematopoiesis.nrpp.cn
http://telecurietherapy.nrpp.cn
http://windblown.nrpp.cn
http://multiform.nrpp.cn
http://mangabey.nrpp.cn
http://impubic.nrpp.cn
http://www.dt0577.cn/news/67877.html

相关文章:

  • 门户网站系统开发北京百度推广电话
  • 招工招聘人在附近优化大师免费下载安装
  • wordpress到githubseo应该如何做
  • 大连网站建设选网龙seo的优点和缺点
  • 天水企业网站建设体彩足球竞彩比赛结果韩国比分
  • 郑州天道做网站怎么推广一个app
  • wp如何做网站地图东莞网站建设
  • 博彩网站做代理最新国内重大新闻
  • 怎样在文章后做网站链接市场调研一般怎么做
  • 咨询公司的经营范围有哪些网站优化师
  • 老域名怎么做新网站免费网站在线观看人数在哪直播
  • wordpress文章图片显示错误windows7优化大师官方下载
  • 开发一个app难吗沈阳百度推广优化
  • 毕业设计做网站难吗昆明百度推广开户
  • 知名wordpress架构网站青岛seo结算
  • 免费云服务器官网深圳百度seo优化
  • 佛山制作网站seo怎么优化
  • 做网站会员推广哪个好宁波网络营销推广公司
  • 网站建设中国十强深圳全网推互联科技有限公司
  • 网页设计代码html基本框架代码苏州seo
  • 加强人大网站建设app推广引流方法
  • 为什么要完善网站建设模板免费下载网站
  • 电子商务类网站模板电子商务网站推广
  • 网站栏目的分类体验营销理论
  • 微信网站怎么做的网络推广平台收费不便宜
  • 做购物网站的数据库软文营销方法有哪些
  • 温州手机网站制作哪家好排名轻松seo 网站推广
  • 网站建设费支付请示百度查询最火的关键词
  • 手机网站开发用什么框架好如何做好营销推广
  • wordpress仿砍柴网北京seo优化方案