excelize

2025-12-10 0 948

excelize

介绍

excelize是用Pure Go编写的库,提供了一组功能,可允许您从XLAM / XLSM / XLSX / XLTM / XLTX文件写入和阅读。支持Microsoft Excel™2007及以后生成的读取和写作电子表格文档。通过高兼容性支持复杂的组件,并提供了流媒体API,以生成或读取具有大量数据的工作表的数据。该库需要Go版本1.23.0或更高版本。可以使用GO的内置文档工具或在go.dev和文档参考上在线查看完整文档。

基本用法

安装

go get github.com/xuri/ excelize
  • 如果使用GO模块对软件包进行管理,请使用以下命令安装。
go get github.com/xuri/ excelize /v2

创建电子表格

这是将创建电子表格文件的最小示例用法。

excelize/v2\”
)

func main() {
f := excelize .NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Create a new sheet.
index, err := f.NewSheet(\”Sheet2\”)
if err != nil {
fmt.Println(err)
return
}
// Set value of a cell.
f.SetCellValue(\”Sheet2\”, \”A2\”, \”Hello world.\”)
f.SetCellValue(\”Sheet1\”, \”B2\”, 100)
// Set active sheet of the workbook.
f.SetActiveSheet(index)
// Save spreadsheet by the given path.
if err := f.SaveAs(\”Book1.xlsx\”); err != nil {
fmt.Println(err)
}
}\”>

 package main

import (
    \"fmt\"

    \"github.com/xuri/ excelize /v2\"
)

func main () {
    f := excelize . NewFile ()
    defer func () {
        if err := f . Close (); err != nil {
            fmt . Println ( err )
        }
    }()
    // Create a new sheet.
    index , err := f . NewSheet ( \"Sheet2\" )
    if err != nil {
        fmt . Println ( err )
        return
    }
    // Set value of a cell.
    f . SetCellValue ( \"Sheet2\" , \"A2\" , \"Hello world.\" )
    f . SetCellValue ( \"Sheet1\" , \"B2\" , 100 )
    // Set active sheet of the workbook.
    f . SetActiveSheet ( index )
    // Save spreadsheet by the given path.
    if err := f . SaveAs ( \"Book1.xlsx\" ); err != nil {
        fmt . Println ( err )
    }
}

阅读电子表格

以下构成裸露的电子表格文档。

excelize/v2\”
)

func main() {
f, err := excelize .OpenFile(\”Book1.xlsx\”)
if err != nil {
fmt.Println(err)
return
}
defer func() {
// Close the spreadsheet.
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Get value from cell by given worksheet name and cell reference.
cell, err := f.GetCellValue(\”Sheet1\”, \”B2\”)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(cell)
// Get all the rows in the Sheet1.
rows, err := f.GetRows(\”Sheet1\”)
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, \”\\t\”)
}
fmt.Println()
}
}\”>

 package main

import (
    \"fmt\"

    \"github.com/xuri/ excelize /v2\"
)

func main () {
    f , err := excelize . OpenFile ( \"Book1.xlsx\" )
    if err != nil {
        fmt . Println ( err )
        return
    }
    defer func () {
        // Close the spreadsheet.
        if err := f . Close (); err != nil {
            fmt . Println ( err )
        }
    }()
    // Get value from cell by given worksheet name and cell reference.
    cell , err := f . GetCellValue ( \"Sheet1\" , \"B2\" )
    if err != nil {
        fmt . Println ( err )
        return
    }
    fmt . Println ( cell )
    // Get all the rows in the Sheet1.
    rows , err := f . GetRows ( \"Sheet1\" )
    if err != nil {
        fmt . Println ( err )
        return
    }
    for _ , row := range rows {
        for _ , colCell := range row {
            fmt . Print ( colCell , \" \\t \" )
        }
        fmt . Println ()
    }
}

将图表添加到电子表格文件

随着图表生成和管理的excelize ,就像几行代码一样容易。您可以根据工作表中的数据构建图表,也可以在工作表中没有任何数据生成图表。

excelize/v2\”
)

func main() {
f := excelize .NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
for idx, row := range [][]interface{}{
{nil, \”Apple\”, \”Orange\”, \”Pear\”}, {\”Small\”, 2, 3, 3},
{\”Normal\”, 5, 2, 4}, {\”Large\”, 6, 7, 8},
} {
cell, err := excelize .CoordinatesToCellName(1, idx+1)
if err != nil {
fmt.Println(err)
return
}
f.SetSheetRow(\”Sheet1\”, cell, &row)
}
if err := f.AddChart(\”Sheet1\”, \”E1\”, & excelize .Chart{
Type: excelize .Col3DClustered,
Series: [] excelize .ChartSeries{
{
Name: \”Sheet1!$A$2\”,
Categories: \”Sheet1!$B$1:$D$1\”,
Values: \”Sheet1!$B$2:$D$2\”,
},
{
Name: \”Sheet1!$A$3\”,
Categories: \”Sheet1!$B$1:$D$1\”,
Values: \”Sheet1!$B$3:$D$3\”,
},
{
Name: \”Sheet1!$A$4\”,
Categories: \”Sheet1!$B$1:$D$1\”,
Values: \”Sheet1!$B$4:$D$4\”,
}},
Title: [] excelize .RichTextRun{
{
Text: \”Fruit 3D Clustered Column Chart\”,
},
},
}); err != nil {
fmt.Println(err)
return
}
// Save spreadsheet by the given path.
if err := f.SaveAs(\”Book1.xlsx\”); err != nil {
fmt.Println(err)
}
}\”>

 package main

import (
    \"fmt\"

    \"github.com/xuri/ excelize /v2\"
)

func main () {
    f := excelize . NewFile ()
    defer func () {
        if err := f . Close (); err != nil {
            fmt . Println ( err )
        }
    }()
    for idx , row := range [][] interface {}{
        { nil , \"Apple\" , \"Orange\" , \"Pear\" }, { \"Small\" , 2 , 3 , 3 },
        { \"Normal\" , 5 , 2 , 4 }, { \"Large\" , 6 , 7 , 8 },
    } {
        cell , err := excelize . CoordinatesToCellName ( 1 , idx + 1 )
        if err != nil {
            fmt . Println ( err )
            return
        }
        f . SetSheetRow ( \"Sheet1\" , cell , & row )
    }
    if err := f . AddChart ( \"Sheet1\" , \"E1\" , & excelize . Chart {
        Type : excelize . Col3DClustered ,
        Series : [] excelize . ChartSeries {
            {
                Name :       \"Sheet1!$A$2\" ,
                Categories : \"Sheet1!$B$1:$D$1\" ,
                Values :     \"Sheet1!$B$2:$D$2\" ,
            },
            {
                Name :       \"Sheet1!$A$3\" ,
                Categories : \"Sheet1!$B$1:$D$1\" ,
                Values :     \"Sheet1!$B$3:$D$3\" ,
            },
            {
                Name :       \"Sheet1!$A$4\" ,
                Categories : \"Sheet1!$B$1:$D$1\" ,
                Values :     \"Sheet1!$B$4:$D$4\" ,
            }},
        Title : [] excelize . RichTextRun {
            {
                Text : \"Fruit 3D Clustered Column Chart\" ,
            },
        },
    }); err != nil {
        fmt . Println ( err )
        return
    }
    // Save spreadsheet by the given path.
    if err := f . SaveAs ( \"Book1.xlsx\" ); err != nil {
        fmt . Println ( err )
    }
}

将图片添加到电子表格文件中

excelize/v2\”
)

func main() {
f, err := excelize .OpenFile(\”Book1.xlsx\”)
if err != nil {
fmt.Println(err)
return
}
defer func() {
// Close the spreadsheet.
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Insert a picture.
if err := f.AddPicture(\”Sheet1\”, \”A2\”, \”image.png\”, nil); err != nil {
fmt.Println(err)
}
// Insert a picture to worksheet with scaling.
if err := f.AddPicture(\”Sheet1\”, \”D2\”, \”image.jpg\”,
& excelize .GraphicOptions{ScaleX: 0.5, ScaleY: 0.5}); err != nil {
fmt.Println(err)
}
// Insert a picture offset in the cell with printing support.
enable, disable := true, false
if err := f.AddPicture(\”Sheet1\”, \”H2\”, \”image.gif\”,
& excelize .GraphicOptions{
PrintObject: &enable,
LockAspectRatio: false,
OffsetX: 15,
OffsetY: 10,
Locked: &disable,
}); err != nil {
fmt.Println(err)
}
// Save the spreadsheet with the origin path.
if err = f.Save(); err != nil {
fmt.Println(err)
}
}\”>

 package main

import (
    \"fmt\"
    _ \"image/gif\"
    _ \"image/jpeg\"
    _ \"image/png\"

    \"github.com/xuri/ excelize /v2\"
)

func main () {
    f , err := excelize . OpenFile ( \"Book1.xlsx\" )
    if err != nil {
        fmt . Println ( err )
        return
    }
    defer func () {
        // Close the spreadsheet.
        if err := f . Close (); err != nil {
            fmt . Println ( err )
        }
    }()
    // Insert a picture.
    if err := f . AddPicture ( \"Sheet1\" , \"A2\" , \"image.png\" , nil ); err != nil {
        fmt . Println ( err )
    }
    // Insert a picture to worksheet with scaling.
    if err := f . AddPicture ( \"Sheet1\" , \"D2\" , \"image.jpg\" ,
        & excelize . GraphicOptions { ScaleX : 0.5 , ScaleY : 0.5 }); err != nil {
        fmt . Println ( err )
    }
    // Insert a picture offset in the cell with printing support.
    enable , disable := true , false
    if err := f . AddPicture ( \"Sheet1\" , \"H2\" , \"image.gif\" ,
        & excelize . GraphicOptions {
            PrintObject :     & enable ,
            LockAspectRatio : false ,
            OffsetX :         15 ,
            OffsetY :         10 ,
            Locked :          & disable ,
        }); err != nil {
        fmt . Println ( err )
    }
    // Save the spreadsheet with the origin path.
    if err = f . Save (); err != nil {
        fmt . Println ( err )
    }
}

贡献

欢迎捐款!打开拉动请求以修复错误,或打开问题以讨论新功能或更改。 XML符合ECMA-376 Office Open XML标准的第5版的第1部分。

许可证

该计划符合BSD 3范围许可证的条款。请参阅https://ope**n*source.org/licenses/bsd-3-clause。

Excel徽标是Microsoft Corporation的商标。这艺术品是一种改编。

Gopher。{ai,svg,png}由takuya ueda创建。根据创意共享3.0归因许可许可。

下载源码

通过命令行克隆项目:

git clone https://github.com/qax-os/excelize.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 excelize https://www.zuozi.net/33851.html

RAG_Techniques
上一篇: RAG_Techniques
D RAT_VB.NET_MySQL_PHP
下一篇: D RAT_VB.NET_MySQL_PHP
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务