当前位置:网站首页>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)
边栏推荐
猜你喜欢

论文精读:VIT - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

毕昇编译器优化:Lazy Code Motion

传统数据中台又贵又复杂?何不试一试永久免费的下一代数据中台

kakka rebalance解决方案

What platform is EPIC?

动手学深度学习_风格迁移

Uniapp 应用未读角标插件 Ba-Shortcut-Badge

对数学直观、感性的认知是理解数学、喜爱数学的必经之路,这本书做到了!

国内市场上的 BI 软件到底有啥区别?

论文分享:「FED BN」使用LOCAL BATCH NORMALIZATION方法解决Non-iid问题
随机推荐
单片机编程-状态机
URLError: <urlopen error [Errno 11004] getaddrinfo failed>调用seaborn-data无法使用
腾讯云2022年8月积分商城规则更新
Linux上给PHP安装redis扩展
PHP 变量注释/**@var*/
redirect action
十七、一起学习Lua 错误处理
win10 uwp 无法附加到CoreCLR
与同步传递相关的获取-释放序列
sublime快速打开终端terminal
An in-depth understanding of the implementation principle of Hybrid
.NET 6 study notes (4) - Solve the Nullable warning in VS2022
五种常用的排序方法
.NET现代应用的产品设计 - DDD实践
正则表达式(全)
The strongest distributed lock tool: Redisson
50道Redis面试题,来看看你会多少?
从功能测试到自动化测试你都知道他们的有缺点吗?
5.3.6 原子操作对非原子的操作排序
一些自动化测试01