当前位置:网站首页>Go-Excelize API源码阅读(五)—— Close()
Go-Excelize API源码阅读(五)—— Close()
2022-08-09 17:42:00 【InfoQ】
Go-Excelize API源码阅读(五)—— Close()
一、Go-Excelize简介
二、Close()
func (f *File) Close() error
func (f *File) Close() error {
var err error
if f.sharedStringTemp != nil {
if err := f.sharedStringTemp.Close(); err != nil {
return err
}
}
f.tempFiles.Range(func(k, v interface{}) bool {
if err = os.Remove(v.(string)); err != nil {
return false
}
return true
})
return err
}
os.Remove(v.(string))
三、NewSheet()
func (f *File) NewSheet(sheet string) int
func (f *File) NewSheet(name string) int {
// Check if the worksheet already exists
index := f.GetSheetIndex(name)
if index != -1 {
return index
}
f.DeleteSheet(name)
f.SheetCount++
wb := f.workbookReader()
sheetID := 0
for _, v := range wb.Sheets.Sheet {
if v.SheetID > sheetID {
sheetID = v.SheetID
}
}
sheetID++
// Update docProps/app.xml
f.setAppXML()
// Update [Content_Types].xml
f.setContentTypes("/xl/worksheets/sheet"+strconv.Itoa(sheetID)+".xml", ContentTypeSpreadSheetMLWorksheet)
// Create new sheet /xl/worksheets/sheet%d.xml
f.setSheet(sheetID, name)
// Update workbook.xml.rels
rID := f.addRels(f.getWorkbookRelsPath(), SourceRelationshipWorkSheet, fmt.Sprintf("/xl/worksheets/sheet%d.xml", sheetID), "")
// Update workbook.xml
f.setWorkbook(name, sheetID, rID)
return f.GetSheetIndex(name)
}
func (f *File) GetSheetIndex(name string) int {
for index, sheet := range f.GetSheetList() {
if strings.EqualFold(sheet, trimSheetName(name)) {
return index
}
}
return -1
}
wb := f.workbookReader()
for _, v := range wb.Sheets.Sheet {
if v.SheetID > sheetID {
sheetID = v.SheetID
}
}
// Update docProps/app.xml
f.setAppXML()
// Update [Content_Types].xml
f.setContentTypes("/xl/worksheets/sheet"+strconv.Itoa(sheetID)+".xml", ContentTypeSpreadSheetMLWorksheet)
// Create new sheet /xl/worksheets/sheet%d.xml
f.setSheet(sheetID, name)
// Update workbook.xml.rels
rID := f.addRels(f.getWorkbookRelsPath(), SourceRelationshipWorkSheet, fmt.Sprintf("/xl/worksheets/sheet%d.xml", sheetID), "")
// Update workbook.xml
f.setWorkbook(name, sheetID, rID)
边栏推荐
猜你喜欢
阿里云张新涛:支持沉浸式体验应用快速落地,阿里云云XR平台发布
Sublime Text的安装过程记录
A carnival of art and technology, cloud XR supports Anaya 2022 Sandbox Immersive Art Season
太厉害了!华为大牛终于把 MySQL 讲的明明白白(基础 + 优化 + 架构)
.NET现代应用的产品设计 - DDD实践
论文解读:Deep-4MCW2V:基于序列的预测指标,以鉴定大肠杆菌中的N4-甲基环胞嘧啶位点
毕昇编译器优化:Lazy Code Motion
ARM Assembly Basics
安装搭建私有仓库 Harbor
One-key login principle of local number
随机推荐
win10 uwp 设置启动窗口大小 获取窗口大小
C的一些琐碎
为什么修补应用程序漏洞并不容易
基于AWS构建云上数仓第一步:云平台的基础概念
动态RDLC报表(四)
好的架构是进化来的,不是设计来的
An in-depth understanding of the implementation principle of Hybrid
IMX6ULL—汇编LED灯
动态RDLC报表(七)
LeetCode笔记:Biweekly Contest 84
以技术御风险,护航云原生 | 同创永益 X 博云举办产品联合发布会
MySQL备份与恢复
loadrunner脚本--参数化
MySQL数据指令
win10 uwp 改变鼠标
每周给我10分钟,我给你一个Flink SQL 菜谱——甜点:数据过滤
C程序设计-第四版
字节二面:可重复读隔离级别下,这个场景会发生什么?
web正则表达式中^和$的含义是什么
5.4 总结