单元格

《Excelize 权威指南》图书出版,网上购买方式:人民邮电出版社 |异步社区 |天猫 |京东 |当当 |微店 |抖音 |拼多多

RichTextRun 定义了富文本的属性。

  1. type RichTextRun struct {
  2. Font *Font
  3. Text string
  4. }

HyperlinkOpts 用来指定可选的超链接属性,例如要显示的文字与屏幕提示文字。

  1. type HyperlinkOpts struct {
  2. Display *string
  3. Tooltip *string
  4. }

FormulaOpts 用于在 SetCellFormula 函数中指定设置特殊公式类型。

  1. type FormulaOpts struct {
  2. Type *string // 公式类型
  3. Ref *string // 共享公式引用
  4. }

设置单元格的值

  1. func (f *File) SetCellValue(sheet, cell string, value interface{}) error

根据给定的工作表名和单元格坐标设置单元格的值。此功能是并发安全的。指定的坐标不应在表格的第一行范围,使用字符文本设置复数。

支持的数据类型
int
int8
int16
int32
int64
uint
uint8
uint16
uint32
uint64
float32
float64
string
[]byte
time.Duration
time.Time
bool
nil

请注意,此函数默认为 time.Time 类型的单元格的值设置 m/d/yy h:mm 数字格式,您可通过 SetCellStyle 更改该设置。若您需设置无法通过 Go 语言 time.Time 类型表示的 Excel 特殊日期,例如 1900 年 1 月 0 日或 1900 年 2 月 29 日,请先设置单元格的值为 0 或 60,再为其设置具有日期数字格式的样式。

设置布尔型值

  1. func (f *File) SetCellBool(sheet, cell string, value bool) error

根据给定的工作表名和单元格坐标设置布尔型单元格的值。

设置默认字符型值

  1. func (f *File) SetCellDefault(sheet, cell, value string) error

根据给定的工作表名和单元格坐标设置字符型单元格的值,字符将不会进行特殊字符过滤。

设置整数

  1. func (f *File) SetCellInt(sheet, cell string, value int) error

根据给定的工作表名和单元格坐标设置整数型单元格的值。

设置无符号整型值

  1. func (f *File) SetCellUint(sheet, cell string, value uint64) error

根据给定的工作表名和单元格坐标设置无符号整型单元格的值。

设置浮点数

  1. func (f *File) SetCellFloat(sheet, cell string, value float64, precision, bitSize int) error

根据给定的工作表名、单元格坐标、浮点数、浮点数尾数部分精度和浮点数类型设置浮点型单元格的值。

设置字符型值

  1. func (f *File) SetCellStr(sheet, cell, value string) error

根据给定的工作表名和单元格坐标设置字符型单元格的值,字符将会进行特殊字符过滤,并且字符串的累计长度应不超过 32767,多余的字符将会被忽略。

设置单元格样式

  1. func (f *File) SetCellStyle(sheet, topLeftCell, bottomRightCell string, styleID int) error

根据给定的工作表名、单元格坐标区域和样式索引设置单元格的值。此功能是并发安全的。样式索引可以通过 NewStyle 函数获取。注意,在同一个坐标区域内的 diagonalDowndiagonalUp 需要保持颜色一致。SetCellStyle 将覆盖单元格的已有样式,而不会将样式与已有样式叠加或合并。

  • 例1,为名为 Sheet1 的工作表 D7 单元格设置边框样式:
  1. style, err := f.NewStyle(&excelize.Style{
  2. Border: []excelize.Border{
  3. {Type: "left", Color: "0000FF", Style: 3},
  4. {Type: "top", Color: "00FF00", Style: 4},
  5. {Type: "bottom", Color: "FFFF00", Style: 5},
  6. {Type: "right", Color: "FF0000", Style: 6},
  7. {Type: "diagonalDown", Color: "A020F0", Style: 8},
  8. {Type: "diagonalUp", Color: "A020F0", Style: 8},
  9. },
  10. })
  11. if err != nil {
  12. fmt.Println(err)
  13. }
  14. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置边框样式

单元格 D7 的四个边框被设置了不同的样式和颜色,这与调用 NewStyle 函数时的参数有关,需要设置不同的样式可参考该章节的文档。

  • 例2,为名为 Sheet1 的工作表 D7 单元格设置渐变样式:
  1. style, err := f.NewStyle(&excelize.Style{
  2. Fill: excelize.Fill{Type: "gradient", Color: []string{"FFFFFF", "E0EBF5"}, Shading: 1},
  3. })
  4. if err != nil {
  5. fmt.Println(err)
  6. }
  7. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置渐变样式

单元格 D7 被设置了渐变效果的颜色填充,渐变填充效果与调用 NewStyle 函数时的参数有关,需要设置不同的样式可参考该章节的文档。

  • 例3,为名为 Sheet1 的工作表 D7 单元格设置纯色填充:
  1. style, err := f.NewStyle(&excelize.Style{
  2. Fill: excelize.Fill{Type: "pattern", Color: []string{"E0EBF5"}, Pattern: 1},
  3. })
  4. if err != nil {
  5. fmt.Println(err)
  6. }
  7. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置纯色填充

单元格 D7 被设置了纯色填充。

  • 例4,为名为 Sheet1 的工作表 D7 单元格设置字符间距与旋转角度:
  1. f.SetCellValue("Sheet1", "D7", "样式")
  2. style, err := f.NewStyle(&excelize.Style{
  3. Alignment: &excelize.Alignment{
  4. Horizontal: "center",
  5. Indent: 1,
  6. JustifyLastLine: true,
  7. ReadingOrder: 0,
  8. RelativeIndent: 1,
  9. ShrinkToFit: true,
  10. TextRotation: 45,
  11. Vertical: "",
  12. WrapText: true,
  13. },
  14. })
  15. if err != nil {
  16. fmt.Println(err)
  17. }
  18. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

设置字符间距与旋转角度

  • 例5,Excel 中的日期和时间用实数表示,例如 2017/7/4 12:00:00 PM 可以用数字 42920.5 来表示。为名为 Sheet1 的工作表 D7 单元格设置时间格式:
  1. f.SetCellValue("Sheet1", "D7", 42920.5)
  2. f.SetColWidth("Sheet1", "D", "D", 13)
  3. style, err := f.NewStyle(&excelize.Style{NumFmt: 22})
  4. if err != nil {
  5. fmt.Println(err)
  6. }
  7. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置时间格式

单元格 D7 被设置了时间格式。注意,当应用了时间格式的单元格宽度过窄无法完整展示时会显示为 ####,可以拖拽调整列宽或者通过调用 SetColWidth 函数设置列宽到合适的大小使其正常显示。

  • 例6,为名为 Sheet1 的工作表 D7 单元格设置字体、字号、颜色和倾斜样式:
  1. f.SetCellValue("Sheet1", "D7", "Excel")
  2. style, err := f.NewStyle(&excelize.Style{
  3. Font: &excelize.Font{
  4. Bold: true,
  5. Italic: true,
  6. Family: "Times New Roman",
  7. Size: 36,
  8. Color: "777777",
  9. },
  10. })
  11. if err != nil {
  12. fmt.Println(err)
  13. }
  14. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

为单元格设置字体、字号、颜色和倾斜样式

  • 例7,锁定并隐藏名为 Sheet1 的工作表 D7 单元格:
  1. style, err := f.NewStyle(&excelize.Style{
  2. Protection: &excelize.Protection{
  3. Hidden: true,
  4. Locked: true,
  5. },
  6. })
  7. if err != nil {
  8. fmt.Println(err)
  9. }
  10. err = f.SetCellStyle("Sheet1", "D7", "D7", style)

要锁定单元格或隐藏公式,请保护工作表。在“审阅”选项卡上,单击“保护工作表”。

设置超链接

  1. func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error

根据给定的工作表、单元格坐标、链接资源和资源类型设置单元格的超链接。资源类型分为外部链接地址 External 和工作簿内部位置链接 Location 两种。每个工作表中的包含最大超链接限制为 65530 个。该方法仅设置单元格的超链接而不影响单元格的值,若需设置单元格的值,请通过 SetCellStyleSetSheetRow 等函数另行设置。

  • 例1,为名为 Sheet1 的工作表 A3 单元格添加外部链接:
  1. display, tooltip := "https://github.com/xuri/excelize", "Excelize on GitHub"
  2. if err := f.SetCellHyperLink("Sheet1", "A3",
  3. "https://github.com/xuri/excelize", "External", excelize.HyperlinkOpts{
  4. Display: &display,
  5. Tooltip: &tooltip,
  6. }); err != nil {
  7. fmt.Println(err)
  8. }
  9. // 为单元格设置字体和下划线样式
  10. style, err := f.NewStyle(&excelize.Style{
  11. Font: &excelize.Font{Color: "1265BE", Underline: "single"},
  12. })
  13. if err != nil {
  14. fmt.Println(err)
  15. }
  16. err = f.SetCellStyle("Sheet1", "A3", "A3", style)
  • 例2,为名为 Sheet1 的工作表 A3 单元格添加内部位置链接:
  1. err := f.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Location")

设置富文本格式

  1. func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error

根据给定的工作表、单元格坐标和富文本格式为指定单元格设置富文本。

例如,在名为 Sheet1 的工作表 A1 单元格设置富文本格式:

设置富文本格式

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/xuri/excelize/v2"
  5. )
  6. func main() {
  7. f := excelize.NewFile()
  8. defer func() {
  9. if err := f.Close(); err != nil {
  10. fmt.Println(err)
  11. }
  12. }()
  13. if err := f.SetRowHeight("Sheet1", 1, 35); err != nil {
  14. fmt.Println(err)
  15. return
  16. }
  17. if err := f.SetColWidth("Sheet1", "A", "A", 44); err != nil {
  18. fmt.Println(err)
  19. return
  20. }
  21. if err := f.SetCellRichText("Sheet1", "A1", []excelize.RichTextRun{
  22. {
  23. Text: "bold",
  24. Font: &excelize.Font{
  25. Bold: true,
  26. Color: "2354E8",
  27. Family: "Times New Roman",
  28. },
  29. },
  30. {
  31. Text: " and ",
  32. Font: &excelize.Font{
  33. Family: "Times New Roman",
  34. },
  35. },
  36. {
  37. Text: "italic ",
  38. Font: &excelize.Font{
  39. Bold: true,
  40. Color: "E83723",
  41. Italic: true,
  42. Family: "Times New Roman",
  43. },
  44. },
  45. {
  46. Text: "text with color and font-family,",
  47. Font: &excelize.Font{
  48. Bold: true,
  49. Color: "2354E8",
  50. Family: "Times New Roman",
  51. },
  52. },
  53. {
  54. Text: "\r\nlarge text with ",
  55. Font: &excelize.Font{
  56. Size: 14,
  57. Color: "AD23E8",
  58. },
  59. },
  60. {
  61. Text: "strike",
  62. Font: &excelize.Font{
  63. Color: "E89923",
  64. Strike: true,
  65. },
  66. },
  67. {
  68. Text: " superscript",
  69. Font: &excelize.Font{
  70. Color: "DBC21F",
  71. VertAlign: "superscript",
  72. },
  73. },
  74. {
  75. Text: " and ",
  76. Font: &excelize.Font{
  77. Size: 14,
  78. Color: "AD23E8",
  79. VertAlign: "baseline",
  80. },
  81. },
  82. {
  83. Text: "underline",
  84. Font: &excelize.Font{
  85. Color: "23E833",
  86. Underline: "single",
  87. },
  88. },
  89. {
  90. Text: " subscript.",
  91. Font: &excelize.Font{
  92. Color: "017505",
  93. VertAlign: "subscript",
  94. },
  95. },
  96. }); err != nil {
  97. fmt.Println(err)
  98. return
  99. }
  100. style, err := f.NewStyle(&excelize.Style{
  101. Alignment: &excelize.Alignment{
  102. WrapText: true,
  103. },
  104. })
  105. if err != nil {
  106. fmt.Println(err)
  107. return
  108. }
  109. if err := f.SetCellStyle("Sheet1", "A1", "A1", style); err != nil {
  110. fmt.Println(err)
  111. return
  112. }
  113. if err := f.SaveAs("Book1.xlsx"); err != nil {
  114. fmt.Println(err)
  115. }
  116. }

获取富文本格式

  1. func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)

根据给定的工作表、单元格坐标获取指定单元格的富文本格式。

获取单元格的值

  1. func (f *File) GetCellValue(sheet, cell string, opts ...Options) (string, error)

根据给定的工作表和单元格坐标获取单元格的值,返回值将转换为 string 类型。如果可以将单元格格式应用于单元格的值,将返回应用后的值,否则将返回原始值。合并区域内所有单元格的值都相同。此功能是并发安全的。

获取单元格数据类型

  1. func (f *File) GetCellType(sheet, cell string) (CellType, error)

根据给定的工作表、单元格坐标获取指定单元格的数据类型。

按列获取全部单元格的值

  1. func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)

根据给定的工作表名按列获取该工作表上全部单元格的值,以二维数组形式返回,其中单元格的值将转换为 string 类型。如果可以将单元格格式应用于单元格的值,将使用应用后的值,否则将使用原始值。

例如,按列获取并遍历输出名为 Sheet1 的工作表上的所有单元格的值:

  1. cols, err := f.GetCols("Sheet1")
  2. if err != nil {
  3. fmt.Println(err)
  4. return
  5. }
  6. for _, col := range cols {
  7. for _, rowCell := range col {
  8. fmt.Print(rowCell, "\t")
  9. }
  10. fmt.Println()
  11. }

按行获取全部单元格的值

  1. func (f *File) GetRows(sheet string, opts ...Options) ([][]string, error)

根据给定的工作表名按行获取该工作表上全部单元格的值,以二维数组形式返回,其中单元格的值将转换为 string 类型。如果可以将单元格格式应用于单元格的值,将使用应用后的值,否则将使用原始值。GetRows 获取带有值或公式单元格的行,行尾连续为空的单元格将被跳过,每行中的单元格数目可能不同。

例如,按行获取并遍历输出名为 Sheet1 的工作表上的所有单元格的值:

  1. rows, err := f.GetRows("Sheet1")
  2. if err != nil {
  3. fmt.Println(err)
  4. return
  5. }
  6. for _, row := range rows {
  7. for _, colCell := range row {
  8. fmt.Print(colCell, "\t")
  9. }
  10. fmt.Println()
  11. }

获取超链接

  1. func (f *File) GetCellHyperLink(sheet, cell string) (bool, string, error)

根据给定的工作表名和单元格坐标获取单元格超链接,如果该单元格存在超链接,将返回 true 和链接地址,否则将返回 false 和空的链接地址。

例如,获取名为 Sheet1 的工作表上坐标为 H6 单元格的超链接:

  1. link, target, err := f.GetCellHyperLink("Sheet1", "H6")

获取样式索引

  1. func (f *File) GetCellStyle(sheet, cell string) (int, error)

根据给定的工作表名和单元格坐标获取单元格样式索引,获取到的索引可以在设置单元格样式时,作为调用 SetCellStyle 函数的参数使用。

合并单元格

  1. func (f *File) MergeCell(sheet, topLeftCell, bottomRightCell string) error

根据给定的工作表名和单元格坐标区域合并单元格。合并区域内仅保留左上角单元格的值,其他单元格的值将被忽略。例如,合并名为 Sheet1 的工作表上 D3:E9 区域内的单元格:

  1. err := f.MergeCell("Sheet1", "D3", "E9")

如果给定的单元格坐标区域与已有的其他合并单元格相重叠,已有的合并单元格将会被删除。

取消合并单元格

  1. func (f *File) UnmergeCell(sheet, topLeftCell, bottomRightCell string) error

根据给定的工作表名和单元格坐标区域取消合并单元格。例如,取消合并名为 Sheet1 的工作表上 D3:E9 区域内的单元格:

  1. err := f.UnmergeCell("Sheet1", "D3", "E9")

如果给定的单元格坐标区域包含多个合并单元格,则全部合并单元格都将被取消合并。

获取合并单元格

根据给定的工作表名获取全部合并单元格的坐标区域和值。

  1. func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)

获取合并单元格的值

  1. func (m *MergeCell) GetCellValue() string

GetCellValue 返回合并单元格的值。

获取合并单元格区域左上角单元格坐标

  1. func (m *MergeCell) GetStartAxis() string

GetStartAxis 返回合并单元格区域左上角单元格的坐标,例如:C2

获取合并单元格区域右下角单元格坐标

  1. func (m *MergeCell) GetEndAxis() string

GetEndAxis 返回合并单元格区域右下角单元格的坐标,例如:D4

获取图片单元格

  1. func (f *File) GetPictureCells(sheet string) ([]string, error)

根据给定的工作表名称获取该工作表中,包含图片的全部单元格坐标。

添加批注

  1. func (f *File) AddComment(sheet string, comment Comment) error

根据给定的工作表名称、单元格坐标和样式参数(作者与文本信息)添加批注。作者信息最大长度为 255 个字符,最大文本内容长度为 32512 个字符,超出该范围的字符将会被忽略。例如,为 Sheet1!A3 单元格添加批注:

在 Excel 文档中添加批注

  1. err := f.AddComment("Sheet1", excelize.Comment{
  2. Cell: "A3",
  3. Author: "Excelize",
  4. Paragraph: []excelize.RichTextRun{
  5. {Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
  6. {Text: "This is a comment."},
  7. },
  8. })

获取批注

  1. func (f *File) GetComments(sheet string) ([]Comment, error)

根据给定的工作表名称获取工作表中的所有单元格批注。

删除批注

  1. func (f *File) DeleteComment(sheet, cell string) error

根据给定的工作表名称、单元格坐标删除批注。例如,删除 Sheet1!A30 单元格批注:

  1. err := f.DeleteComment("Sheet1", "A30")

设置公式

  1. func (f *File) SetCellFormula(sheet, cell, formula string, opts ...FormulaOpts) error

根据给定的工作表名和单元格坐标设置该单元格上的公式。公式的结果可在工作表被 Office Excel 应用程序打开时计算,或通过 CalcCellValue 函数计算单元格的值。若 Excel 应用程序打开工作簿后未对设置的单元格公式进行计算,请在设置公式后调用 UpdateLinkedValue 清除单元格缓存。

  • 例1,为名为 Sheet1 的工作表 A3 单元格设置普通公式 =SUM(A1,B1)
  1. err := f.SetCellFormula("Sheet1", "A3", "=SUM(A1,B1)")
  • 例2,为名为 Sheet1 的工作表 A3 单元格设置一维纵向常量数组(列数组)公式 1;2;3:
  1. err := f.SetCellFormula("Sheet1", "A3", "={1;2;3}")
  • 例3,为名为 Sheet1 的工作表 A3 单元格设置一维横向常量数组(行数组)公式 "a","b","c":
  1. err := f.SetCellFormula("Sheet1", "A3", "={\"a\",\"b\",\"c\"}")
  • 例4,为名为 Sheet1 的工作表 A3 单元格设置二维常量数组公式 {1,2;"a","b"}:
  1. formulaType, ref := excelize.STCellFormulaTypeArray, "A3:A3"
  2. err := f.SetCellFormula("Sheet1", "A3", "={1,2;\"a\",\"b\"}",
  3. excelize.FormulaOpts{Ref: &ref, Type: &formulaType})
  • 例5,为名为 Sheet1 的工作表 A3 单元格设置区域数组公式 A1:A2:
  1. formulaType, ref := excelize.STCellFormulaTypeArray, "A3:A3"
  2. err := f.SetCellFormula("Sheet1", "A3", "=A1:A2",
  3. excelize.FormulaOpts{Ref: &ref, Type: &formulaType})
  • 例6,为名为 Sheet1 的工作表 C1:C5 区域的单元格设置共享公式 =A1+B1,其中 C1 为主单元格:
  1. formulaType, ref := excelize.STCellFormulaTypeShared, "C1:C5"
  2. err := f.SetCellFormula("Sheet1", "C1", "=A1+B1",
  3. excelize.FormulaOpts{Ref: &ref, Type: &formulaType})
  • 例7,为名为 Sheet1 的工作表 C2 单元格设置表格公式 =SUM(Table1[[A]:[B]]):
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/xuri/excelize/v2"
  5. )
  6. func main() {
  7. f := excelize.NewFile()
  8. defer func() {
  9. if err := f.Close(); err != nil {
  10. fmt.Println(err)
  11. }
  12. }()
  13. for idx, row := range [][]interface{}{{"A", "B", "C"}, {1, 2}} {
  14. if err := f.SetSheetRow("Sheet1", fmt.Sprintf("A%d", idx+1), &row); err != nil {
  15. fmt.Println(err)
  16. return
  17. }
  18. }
  19. if err := f.AddTable("Sheet1",
  20. &excelize.Table{
  21. Range: "A1:C2",
  22. Name: "Table1",
  23. StyleName: "TableStyleMedium2",
  24. }); err != nil {
  25. fmt.Println(err)
  26. return
  27. }
  28. formulaType := excelize.STCellFormulaTypeDataTable
  29. if err := f.SetCellFormula("Sheet1", "C2", "=SUM(Table1[[A]:[B]])",
  30. excelize.FormulaOpts{Type: &formulaType}); err != nil {
  31. fmt.Println(err)
  32. return
  33. }
  34. if err := f.SaveAs("Book1.xlsx"); err != nil {
  35. fmt.Println(err)
  36. }
  37. }

获取公式

  1. func (f *File) GetCellFormula(sheet, cell string) (string, error)

根据给定的工作表名和单元格坐标获取该单元格上的公式。

计算单元格的值

  1. func (f *File) CalcCellValue(sheet, cell string, opts ...Options) (string, error)

根据给定的工作表名和单元格坐标计算包含公式单元格的值。该方法目前正在开发中,尚未支持迭代计算、隐式交集、显式交集、数组函数、表格函数和其他部分函数。

支持的公式函数列表如下:

函数描述
ABS返回数字的绝对值
ACCRINT返回定期支付利息的债券的应计利息
ACCRINTM返回在到期日支付利息的债券的应计利息
ACOS返回数字的反余弦值
ACOSH返回数字的反双曲余弦值
ACOT返回数字的反余切值
ACOTH返回数字的双曲反余切值
AGGREGATE返回列表或数据库中的聚合
ADDRESS以文本形式将引用值返回到工作表的单个单元格
AMORDEGRC使用折旧系数返回每个记帐期的折旧值
AMORLINC返回每个记帐期的折旧值
AND如果其所有参数均为 TRUE,则返回 TRUE
ARABIC将罗马数字转换为阿拉伯数字
ARRAYTOTEXT返回任意指定区域内的文本值的数组
ASIN返回数字的反正弦值
ASINH返回数字的反双曲正弦值
ATAN返回数字的反正切值
ATAN2返回 X 和 Y 坐标的反正切值
ATANH返回数字的反双曲正切值
AVEDEV返回数据点与它们的平均值的绝对偏差平均值
AVERAGE返回其参数的平均值
AVERAGEA返回其参数的平均值,包括数字、文本和逻辑值
AVERAGEIF返回区域中满足给定条件的所有单元格的平均值(算术平均值)
AVERAGEIFS返回满足多个条件的所有单元格的平均值(算术平均值)
BASE将数字转换为具备给定基数 (base) 的文本表示
BESSELI返回修正的贝赛耳函数 In(x)
BESSELJ返回贝赛耳函数 Jn(x)
BESSELK返回修正的贝赛耳函数 Kn(x)
BESSELY返回贝赛耳函数 Yn(x)
BETADIST返回 beta 累积分布函数
BETA.DIST返回 beta 累积分布函数
BETAINV返回指定 beta 分布的累积分布函数的反函数
BETA.INV返回指定 beta 分布的累积分布函数的反函数
BIN2DEC将二进制数转换为十进制数
BIN2HEX将二进制数转换为十六进制数
BIN2OCT将二进制数转换为八进制数
BINOMDIST返回一元二项式分布的概率
BINOM.DIST返回一元二项式分布的概率
BINOM.DIST.RANGE使用二项式分布返回试验结果的概率
BINOM.INV返回使累积二项式分布小于或等于临界值的最小值
BITAND返回两个数的“按位与”
BITLSHIFT返回左移 shift_amount 位的计算值接收数
BITOR返回两个数的“按位或”
BITRSHIFT返回右移 shift_amount 位的计算值接收数
BITXOR返回两个数的按位“异或”
CEILING将数字舍入为最接近的整数或最接近的指定基数的倍数
CEILING.MATH将数字向上舍入为最接近的整数或最接近的指定基数的倍数
CEILING.PRECISE将数字舍入为最接近的整数或最接近的指定基数的倍数。 无论该数字的符号如何,该数字都向上舍入
CHAR返回由代码数字指定的字符
CHIDIST返回 χ2 分布的单尾概率
CHIINV返回 χ2 分布的单尾概率的反函数
CHITEST返回独立性检验值
CHISQ.DIST返回累积 beta 概率密度函数
CHISQ.DIST.RT返回 χ2 分布的单尾概率
CHISQ.INV返回累积 beta 概率密度函数
CHISQ.INV.RT返回 χ2 分布的单尾概率的反函数
CHISQ.TEST返回独立性检验值
CHOOSE从值的列表中选择值
CLEAN删除文本中所有非打印字符
CODE返回文本字符串中第一个字符的数字代码
COLUMN返回引用的列号
COLUMNS返回引用中包含的列数
COMBIN返回给定数目对象的组合数
COMBINA返回给定数目的项目具有重复项的组合数
COMPLEX将实系数和虚系数转换为复数
CONCAT将多个区域和/或字符串的文本组合起来,但不提供分隔符或 IgnoreEmpty 参数
CONCATENATE将几个文本项合并为一个文本项
CONFIDENCE返回总体平均值的置信区间
CONFIDENCE.NORM返回总体平均值的置信区间
CONFIDENCE.T返回总体平均值的置信区间(使用学生 t-分布)
CONVERT将数字从一种度量系统转换为另一种度量系统
CORREL返回两个数据集之间的相关系数
COS返回数字的余弦值
COSH返回数字的双曲余弦值
COT返回数字的双曲余弦值
COTH返回角度的余弦值
COUNT计算参数列表中数字的个数
COUNTA计算参数列表中值的个数
COUNTBLANK计算区域内空白单元格的数量
COUNTIF计算区域内符合给定条件的单元格的数量
COUNTIFS计算区域内符合多个条件的单元格的数量
COUPDAYBS返回从票息期开始到结算日之间的天数
COUPDAYS返回包含结算日的票息期天数
COUPDAYSNC返回从结算日到下一票息支付日之间的天数
COUPNCD返回结算日之后的下一个票息支付日
COUPNUM返回结算日与到期日之间可支付的票息数
COUPPCD返回结算日之前的上一票息支付日
COVAR返回协方差(成对偏差乘积的平均值)
COVARIANCE.P返回协方差(成对偏差乘积的平均值)
COVARIANCE.S返回样本协方差,即两个数据集中每对数据点的偏差乘积的平均值
CRITBINOM返回使累积二项式分布小于或等于临界值的最小值
CSC返回角度的余割值
CSCH返回角度的双曲余割值
CUMIPMT返回两个付款期之间累积支付的利息
CUMPRINC返回两个付款期之间为贷款累积支付的本金
DATE返回特定日期的序列号
DATEDIF计算两个日期之间的天数、月数或年数。 此函数在需要计算年龄的公式中很有用
DATEVALUE将文本格式的日期转换为序列号
DAVERAGE返回所选数据库条目的平均值
DAY将序列号转换为月份日期
DAYS返回两个日期之间的天数
DAYS360以一年 360 天为基准计算两个日期间的天数
DB使用固定余额递减法,返回一笔资产在给定期间内的折旧值
DCOUNT计算数据库中包含数字的单元格的数量
DCOUNTA计算数据库中非空单元格的数量
DDB使用双倍余额递减法或其他指定方法,返回一笔资产在给定期间内的折旧值
DEC2BIN将十进制数转换为二进制数
DEC2HEX将十进制数转换为十六进制数
DEC2OCT将十进制数转换为八进制数
DECIMAL将给定基数内的数的文本表示转换为十进制数
DEGREES将弧度转换为度
DELTA检验两个值是否相等
DEVSQ返回偏差的平方和
DGET从数据库提取符合指定条件的单个记录
DISC返回债券的贴现率
DMAX返回所选数据库条目的最大值
DMIN返回所选数据库条目的最小值
DOLLAR使用货币格式将数字转换为文本,并将小数舍入为指定的位数
DOLLARDE将以分数表示的价格转换为以小数表示的价格
DOLLARFR将以小数表示的价格转换为以分数表示的价格
DPRODUCT将数据库中符合条件的记录的特定字段中的值相乘
DSTDEV基于所选数据库条目的样本估算标准偏差
DSTDEVP基于所选数据库条目的样本总体计算标准偏差
DSUM对数据库中符合条件的记录的字段列中的数字求和
DURATION返回定期支付利息的债券的每年期限
DVAR基于所选数据库条目的样本估算方差
DVARP基于所选数据库条目的样本总体计算方差
EDATE返回用于表示开始日期之前或之后月数的日期的序列号
EFFECT返回年有效利率
ENCODEURL返回 URL 编码的字符串
EOMONTH返回指定月数之前或之后的月份的最后一天的序列号
ERF返回误差函数
ERF.PRECISE返回误差函数
ERFC返回互补误差函数
ERFC.PRECISE返回从 x 到无穷大积分的互补 ERF 函数
ERROR.TYPE返回对应于错误类型的数字
EUROCONVERT将数字转换为欧元形式,将数字由欧元形式转换为欧盟成员国货币形式,或利用欧元作为中间货币将数字由某一欧盟成员国货币转化为另一欧盟成员国货币的形式(三角转换关系)
EVEN将数字向上舍入到最接近的偶数
EXACT检查两个文本值是否相同
EXP返回 e 的 n 次方
EXPON.DIST返回指数分布
EXPONDIST返回指数分布
FACT返回数字的阶乘
FACTDOUBLE返回数字的双倍阶乘
FALSE返回逻辑值 FALSE
F.DIST返回 F 概率分布
FDIST返回 F 概率分布
F.DIST.RT返回 F 概率分布
FIND在一个文本值中查找另一个文本值(区分大小写)
FINDB在一个文本值中查找另一个文本值(区分大小写)
F.INV返回 F 概率分布的反函数
F.INV.RT返回 F 概率分布的反函数
FINV返回 F 概率分布的反函数
FISHER返回 Fisher 变换值
FISHERINV返回 Fisher 变换的反函数
FIXED将数字格式设置为具有固定小数位数的文本
FLOOR向绝对值减小的方向舍入数字
FLOOR.MATH将数字向下舍入为最接近的整数或最接近的指定基数的倍数
FLOOR.PRECISE将数字舍入为最接近的整数或最接近的指定基数的倍数。 无论该数字的符号如何,该数字都向上舍入
FORECAST返回一个值和线性趋势
FORECAST.LINEAR返回一个值和线性趋势
FORMULATEXT将给定引用的公式返回为文本
FREQUENCY以垂直数组的形式返回频率分布
F.TEST返回 F 检验的结果
FTEST返回 F 检验的结果
FV返回一笔投资的未来值
FVSCHEDULE返回应用一系列复利率计算的初始本金的未来值
GAMMA返回 γ 函数值
GAMMA.DIST返回 γ 分布
GAMMADIST返回 γ 分布
GAMMA.INV返回 γ 累积分布函数的反函数
GAMMAINV返回 γ 累积分布函数的反函数
GAMMALN返回 γ 函数的自然对数,Γ(x)
GAMMALN.PRECISE返回 γ 函数的自然对数,Γ(x)
GAUSS返回小于标准正态累积分布 0.5 的值
GCD返回最大公约数
GEOMEAN返回几何平均值
GESTEP检验数字是否大于阈值
GROWTH返回指数趋势值
HARMEAN返回调和平均值
HEX2BIN将十六进制数转换为二进制数
HEX2DEC将十六进制数转换为十进制数
HEX2OCT将十六进制数转换为八进制数
HLOOKUP查找数组的首行,并返回指定单元格的值
HOUR将序列号转换为小时
HYPERLINK创建快捷方式或跳转,以打开存储在网络服务器、Intranet 或 Internet 上的文档
HYPGEOM.DIST返回超几何分布
HYPGEOMDIST返回超几何分布
IF指定要执行的逻辑检测
IFERROR如果公式的计算结果错误,则返回您指定的值;否则返回公式的结果
IFNA如果该表达式解析为 #N/A,则返回指定值;否则返回该表达式的结果
IFS检查是否满足一个或多个条件,且是否返回与第一个 TRUE 条件对应的值
IMABS返回复数的绝对值(模数)
IMAGINARY返回复数的虚系数
IMARGUMENT返回参数 theta,即以弧度表示的角
IMCONJUGATE返回复数的共轭复数
IMCOS返回复数的余弦
IMCOSH返回复数的双曲余弦值
IMCOT返回复数的余弦值
IMCSC返回复数的余割值
IMCSCH返回复数的双曲余割值
IMDIV返回两个复数的商
IMEXP返回复数的指数
IMLN返回复数的自然对数
IMLOG10返回复数的以 10 为底的对数
IMLOG2返回复数的以 2 为底的对数
IMPOWER返回复数的整数幂
IMPRODUCT返回复数的 product
IMREAL返回复数的实系数
IMSEC返回复数的正割值
IMSECH返回复数的双曲正割值
IMSIN返回复数的正弦
IMSINH返回复数的双曲正弦值
IMSQRT返回复数的平方根
IMSUB返回两个复数的差
IMSUM返回多个复数的和
IMTAN返回复数的正切值
INDEX使用索引从引用或数组中选择值
INDIRECT返回由文本值指定的引用
INT将数字向下舍入到最接近的整数
INTERCEPT返回线性回归线的截距
INTRATE返回完全投资型债券的利率
IPMT返回一笔投资在给定期间内支付的利息
IRR返回一系列现金流的内部收益率
ISBLANK如果值为空,则返回 TRUE
ISERR如果值为除 #N/A 以外的任何错误值,则返回 TRUE
ISERROR如果值为任何错误值,则返回 TRUE
ISEVEN如果数字为偶数,则返回 TRUE
ISFORMULA如果有对包含公式的单元格的引用,则返回 TRUE
ISLOGICAL如果值为逻辑值,则返回 TRUE
ISNA如果值为错误值 #N/A,则返回 TRUE
ISNONTEXT如果值不是文本,则返回 TRUE
ISNUMBER如果值为数字,则返回 TRUE
ISODD如果数字为奇数,则返回 TRUE
ISREF如果值为引用值,则返回 TRUE
ISTEXT如果值为文本,则返回 TRUE
ISO.CEILING返回一个数字,该数字向上舍入为最接近的整数或最接近的有效位的倍数
ISOWEEKNUM返回给定日期在全年中的 ISO 周数
ISPMT计算特定投资期内要支付的利息
KURT返回数据集的峰值
LARGE返回数据集中第 k 个最大值
LCM返回最小公倍数
LEFT返回文本值中最左边的字符
LEFTB返回文本值中最左边的字符
LEN返回文本字符串中的字符个数
LENB返回文本字符串中的字符个数
LN返回数字的自然对数
LOG返回数字的以指定底为底的对数
LOG10返回数字的以 10 为底的对数
LOGINV返回对数累积分布的反函数
LOGNORM.DIST返回对数累积分布函数
LOGNORMDIST返回对数累积分布函数
LOGNORM.INV返回对数累积分布的反函数
LOOKUP在向量或数组中查找值
LOWER将文本转换为小写
MATCH在引用或数组中查找值
MAX返回参数列表中的最大值
MAXA返回参数列表中的最大值,包括数字、文本和逻辑值
MAXIFS返回一组给定条件或标准指定的单元格之间的最大值
MDETERM返回数组的矩阵行列式的值
MDURATION返回假设面值为 ¥100 的有价证券的 Macauley 修正期限
MEDIAN返回给定数值集合的中值
MID从文本字符串中的指定位置起返回特定个数的字符
MIDB从文本字符串中的指定位置起返回特定个数的字符
MIN返回参数列表中的最小值
MINIFS返回一组给定条件或标准指定的单元格之间的最小值
MINA返回参数列表中的最小值,包括数字、文本和逻辑值
MINUTE将序列号转换为分钟
MINVERSE返回数组的逆矩阵
MIRR返回正和负现金流以不同利率进行计算的内部收益率
MMULT返回两个数组的矩阵乘积
MOD返回除法的余数
MODE返回在数据集内出现次数最多的值
MODE.MULT返回一组数据或数据区域中出现频率最高或重复出现的数值的垂直数组
MODE.SNGL返回在数据集内出现次数最多的值
MONTH将序列号转换为月
MROUND返回一个舍入到所需倍数的数字
MULTINOMIAL返回一组数字的多项式
MUNIT返回单位矩阵或指定维度
N返回转换为数字的值
NA返回错误值 #N/A
NEGBINOM.DIST返回负二项式分布
NEGBINOMDIST返回负二项式分布
NETWORKDAYS返回两个日期间的完整工作日的天数
NETWORKDAYS.INTL返回两个日期之间的完整工作日的天数(使用参数指明周末有几天并指明是哪几天)
NOMINAL返回年度的名义利率
NORM.DIST返回正态累积分布
NORMDIST返回正态累积分布
NORMINV返回正态累积分布的反函数
NORM.INV返回正态累积分布的反函数
NORM.S.DIST返回标准正态累积分布
NORMSDIST返回标准正态累积分布
NORM.S.INV返回标准正态累积分布函数的反函数
NORMSINV返回标准正态累积分布函数的反函数
NOT对其参数的逻辑求反
NOW返回当前日期和时间的序列号
NPER返回投资的期数
NPV返回基于一系列定期的现金流和贴现率计算的投资的净现值
OCT2BIN将八进制数转换为二进制数
OCT2DEC将八进制数转换为十进制数
OCT2HEX将八进制数转换为十六进制数
ODD将数字向上舍入为最接近的奇数
ODDFPRICE返回每张票面为 ¥100 且第一期为奇数的债券的现价
ODDFYIELD返回第一期为奇数的债券的收益
ODDLPRICE返回每张票面为 100 元且最后一期为奇数的债券的现价
ODDLYIELD返回最后一期为奇数的债券的收益
OR如果任一参数为 TRUE,则返回 TRUE
PDURATION返回投资到达指定值所需的期数
PEARSON返回 Pearson 乘积矩相关系数
PERCENTILE.EXC返回某个区域中的数值的第 k 个百分点值,此处的 k 的范围为 0 到 1(不含 0 和 1)
PERCENTILE.INC返回区域中数值的第 k 个百分点的值
PERCENTILE返回区域中数值的第 k 个百分点的值
PERCENTRANK.EXC将某个数值在数据集中的排位作为数据集的百分点值返回,此处的百分点值的范围为 0 到 1(不含 0 和 1)
PERCENTRANK.INC返回数据集中值的百分比排位
PERCENTRANK返回数据集中值的百分比排位
PERMUT返回给定数目对象的排列数
PERMUTATIONA返回可从总计对象中选择的给定数目对象(含重复)的排列数
PHI返回标准正态分布的密度函数值
PI返回 pi 的值
PMT返回年金的定期支付金额
POISSON.DIST返回泊松分布
POISSON返回泊松分布
POWER返回数的乘幂
PPMT返回一笔投资在给定期间内偿还的本金
PRICE返回每张票面为 ¥100 且定期支付利息的债券的现价
PRICEDISC返回每张票面为 ¥100 的已贴现债券的现价
PRICEMAT返回每张票面为 ¥100 且在到期日支付利息的债券的现价
PROB返回这些值存在于两个限定值之间的范围中的概率
PRODUCT将其参数相乘
PROPER将文本值的每个字的首字母大写
PV返回投资的现值
QUARTILE返回一组数据的四分位点
QUARTILE.EXC基于百分点值返回数据集的四分位,此处的百分点值的范围为 0 到 1(不含 0 和 1)
QUARTILE.INC返回一组数据的四分位点
QUOTIENT返回除法的整数部分
RADIANS将度转换为弧度
RAND返回 0 和 1 之间的一个随机数
RANDBETWEEN返回位于两个指定数之间的一个随机数
RANK.EQ返回一列数字的数字排位
RANK返回一列数字的数字排位
RATE返回年金的各期利率
RECEIVED返回完全投资型债券在到期日收回的金额
REPLACE替换文本中的字符
REPLACEB替换文本中的字符
REPT按给定次数重复文本
RIGHT返回文本值中最右边的字符
RIGHTB返回文本值中最右边的字符
ROMAN将阿拉伯数字转换为文字形式的罗马数字
ROUND将数字按指定位数舍入
ROUNDDOWN向绝对值减小的方向舍入数字
ROUNDUP向绝对值增大的方向舍入数字
ROW返回引用的行号
ROWS返回引用中的行数
RRI返回某项投资增长的等效利率
RSQ返回 Pearson 乘积矩相关系数的平方
SEC返回角度的正割值
SECH返回角度的双曲正切值
SECOND将序列号转换为秒
SERIESSUM返回基于公式的幂级数的和
SHEET返回引用工作表的工作表编号
SHEETS返回引用中的工作表数
SIGN返回数字的符号
SIN返回给定角度的正弦值
SINH返回数字的双曲正弦值
SKEW返回分布的不对称度
SKEW.P返回一个分布的不对称度:用来体现某一分布相对其平均值的不对称程度
SLN返回固定资产的每期线性折旧费
SLOPE返回线性回归线的斜率
SMALL返回数据集中的第 k 个最小值
SQRT返回正平方根
SQRTPI返回某数与 pi 的乘积的平方根
STANDARDIZE返回正态化数值
STDEV基于样本估算标准偏差
STDEV.P基于整个样本总体计算标准偏差
STDEV.S基于样本估算标准偏差
STDEVA基于样本(包括数字、文本和逻辑值)估算标准偏差
STDEVP基于整个样本总体计算标准偏差
STDEVPA基于样本总体(包括数字、文本和逻辑值)计算标准偏差
STEYX返回通过线性回归法预测每个 x 的 y 值时所产生的标准误差
SUBSTITUTE在文本字符串中用新文本替换旧文本
SUBTOTAL返回列表或数据库中的分类汇总
SUM求参数的和
SUMIF按给定条件对指定单元格求和
SUMIFS在区域中添加满足多个条件的单元格
SUMPRODUCT返回对应的数组元素的乘积和
SUMSQ返回参数的平方和
SUMX2MY2返回两数组中对应值平方差之和
SUMX2PY2返回两数组中对应值的平方和之和
SUMXMY2返回两个数组中对应值差的平方和
SWITCH根据值列表计算表达式,并返回与第一个匹配值对应的结果。 如果不匹配,则可能返回可选默认值
SYD返回某项固定资产按年限总和折旧法计算的每期折旧金额
T将参数转换为文本
TAN返回数字的正切值
TANH返回数字的双曲正切值
TBILLEQ返回国库券的等价债券收益
TBILLPRICE返回面值 ¥100 的国库券的价格
TBILLYIELD返回国库券的收益率
T.DIST返回学生 t-分布的百分点(概率)
T.DIST.2T返回学生 t-分布的百分点(概率)
T.DIST.RT返回学生 t-分布
TDIST返回学生 t-分布
TEXT设置数字格式并将其转换为文本
TEXTAFTER返回在给定字符或字符串之后发生的文本
TEXTBEFORE返回在给定字符或字符串之前发生的文本
TEXTJOIN将多个区域和/或字符串的文本组合起来,并包括你在要组合的各文本值之间指定的分隔符。 如果分隔符是空的文本字符串,则此函数将有效连接这些区域
TIME返回特定时间的序列号
TIMEVALUE将文本格式的时间转换为序列号
T.INV返回作为概率和自由度函数的学生 t 分布的 t 值
T.INV.2T返回学生 t-分布的反函数
TINV返回学生 t-分布的反函数
TODAY返回今天日期的序列号
TRANSPOSE返回数组的转置
TREND返回线性趋势值
TRIM删除文本中的空格
TRIMMEAN返回数据集的内部平均值
TRUE返回逻辑值 TRUE
TRUNC将数字截尾取整
T.TEST返回与学生 t-检验相关的概率
TTEST返回与学生 t-检验相关的概率
TYPE返回表示值的数据类型的数字
UNICHAR返回给定数值引用的 Unicode 字符
UNICODE返回对应于文本的第一个字符的数字(代码点)
UPPER将文本转换为大写形式
VALUE将文本参数转换为数字
VALUETOTEXT从任意指定值中返回文本
VAR基于样本估算方差
VAR.P计算基于样本总体的方差
VAR.S基于样本估算方差
VARA基于样本(包括数字、文本和逻辑值)估算方差
VARP计算基于样本总体的方差
VARPA基于样本总体(包括数字、文本和逻辑值)计算标准偏差
VDB使用余额递减法,返回一笔资产在给定期间或部分期间内的折旧值
VLOOKUP在数组第一列中查找,然后在行之间移动以返回单元格的值
WEEKDAY将序列号转换为星期日期
WEEKNUM将序列号转换为代表该星期为一年中第几周的数字
WEIBULL基于样本总体(包括数字、文本和逻辑值)计算标准偏差
WEIBULL.DIST返回 Weibull 分布
WORKDAY返回指定的若干个工作日之前或之后的日期的序列号
WORKDAY.INTL返回日期在指定的工作日天数之前或之后的序列号(使用参数指明周末有几天并指明是哪几天)
XIRR返回一组现金流的内部收益率,这些现金流不一定定期发生
XLOOKUP搜索区域或数组,并返回对应于找到的第一个匹配项的项。 如果不存在匹配项,则 XLOOKUP 可返回最接近(近似值)的匹配项
XNPV返回一组现金流的净现值,这些现金流不一定定期发生
XOR返回所有参数的逻辑“异或”值
YEAR将序列号转换为年
YEARFRAC返回代表 start_date 和 end_date 之间整天天数的年分数
YIELD返回定期支付利息的债券的收益
YIELDDISC返回已贴现债券的年收益;例如,短期国库券
YIELDMAT返回在到期日支付利息的债券的年收益
Z.TEST返回 z 检验的单尾概率值
ZTEST返回 z 检验的单尾概率值