Draft:Excelize

  • Comment: Wikipedia cannot be used as a source. Theroadislong (talk) 09:12, 19 August 2026 (UTC)

Excelize
DeveloperOpen-source contributors
Release30 August 2016; 9 years ago (2016-08-30)[1]
Written inGo
Operating systemCross-platform
TypeLibrary, Spreadsheet software
LicenseBSD 3-Clause License
Websitehttps://xuri.me/excelize

Excelize is an open-source library written in Go for reading from and writing to Microsoft Excel spreadsheet files. It supports spreadsheet formats such as XLAM, XLSM, XLSX, XLTM, and XLTX.[2] It implements the Office Open XML standard (ECMA-376 and ISO/IEC 29500).[3]

History

The first commit to the Excelize GitHub repository was made on August 30, 2016. A book about the library, Excelize 权威指南 (Excelize: The Definitive Guide), was published to cover its architecture and usage.[4]

Features

Excelize can read and modify documents generated by Microsoft Excel 2007 and later. Its features include:

  • File processing: Creating, reading, and modifying spreadsheets without requiring Microsoft Office.
  • Streaming API: A streaming API for reading and writing data in large files to reduce memory usage.
  • Workbook elements: Support for inserting charts, pivot tables, and data validation, as well as cell formatting.[2]
  • Encryption: Support for encrypting and decrypting Compound File Binary (CFB) formats. Supported algorithms include MD4, MD5, RIPEMD-160, SHA1, SHA256, SHA384, and SHA512.[5]

Security

In July 2026, a Denial of Service (DoS) vulnerability (CVE-2026-54063) was found in Excelize versions prior to 2.11.0.[6]

The vulnerability was located in the `checkSheet` function used for parsing worksheets, which did not validate row indices against Excel's maximum row limit of 1,048,576. Specially crafted XLSX files could cause high memory allocation, leading to application crashes.[7] The issue was fixed in version 2.11.0 by adding bounds checking for worksheet structures.[6]

Example usage

The following is a minimal code example in Go demonstrating how to generate a new Excel spreadsheet, input data into cells, and save the file:

f := excelize.NewFile()
defer func() {
    if err := f.Close(); err != nil {
        fmt.Println(err)
    }
}()
// Create a new worksheet named "Sheet2"
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
// Set values for cells
f.SetCellValue("Sheet2", "A2", "Hello world.")
f.SetCellValue("Sheet1", "B2", 100)
// Set the active sheet for the workbook
f.SetActiveSheet(index)
// Save the spreadsheet file
if err := f.SaveAs("Book1.xlsx"); err != nil {
    fmt.Println(err)
}

See also

References

  1. ^ "First GitHub commit for Excelize". github.com. 2016-08-30. Archived from the original on 2020-11-28. Retrieved 2020-11-28.
  2. ^ a b "Open Source Go Library - Create XLSX/XLSM Spreadsheets, Add PivotTable". File Format. Retrieved 18 August 2026.
  3. ^ "Excelize - Wikipedia". Japanese Wikipedia (in Japanese). Retrieved 18 August 2026.
  4. ^ Excelize 权威指南 (in Chinese). ISBN 978-7115636478. Retrieved 18 August 2026.
  5. ^ "excelize package - github.com/xuri/excelize/v2 - Go Packages". pkg.go.dev. Retrieved 18 August 2026.
  6. ^ a b "CVE-2026-54063 Detail". National Vulnerability Database. NIST. 10 July 2026. Retrieved 18 August 2026.
  7. ^ "Vulnerability Summary for the Week of July 6, 2026". Cybersecurity and Infrastructure Security Agency (CISA). 13 July 2026. Retrieved 18 August 2026.

Category:Go (programming language) Category:Free and open-source software Category:Software using the BSD license Category:Spreadsheet software

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.