MCPcopy Create free account
hub / github.com/bytebase/bytebase / XLSX

Function XLSX

backend/component/export/xlsx.go:24–56  ·  view source on GitHub ↗

XLSX exports query results as XLSX format. Note: XLSX still materializes in memory due to excelize library limitations.

(result *v1pb.QueryResult)

Source from the content-addressed store, hash-verified

22// XLSX exports query results as XLSX format.
23// Note: XLSX still materializes in memory due to excelize library limitations.
24func XLSX(result *v1pb.QueryResult) ([]byte, error) {
25 f := excelize.NewFile()
26 defer f.Close()
27 index, err := f.NewSheet("Sheet1")
28 if err != nil {
29 return nil, err
30 }
31 var columnPrefixes []string
32 for i, columnName := range result.ColumnNames {
33 columnPrefix, err := ExcelColumnName(i)
34 if err != nil {
35 return nil, err
36 }
37 columnPrefixes = append(columnPrefixes, columnPrefix)
38 if err := f.SetCellValue(sheet1Name, fmt.Sprintf("%s1", columnPrefix), columnName); err != nil {
39 return nil, err
40 }
41 }
42 for i, row := range result.Rows {
43 for j, value := range row.Values {
44 columnName := fmt.Sprintf("%s%d", columnPrefixes[j], i+2)
45 if err := f.SetCellValue("Sheet1", columnName, convertValueToStringInXLSX(value)); err != nil {
46 return nil, err
47 }
48 }
49 }
50 f.SetActiveSheet(index)
51 excelBytes, err := f.WriteToBuffer()
52 if err != nil {
53 return nil, err
54 }
55 return excelBytes.Bytes(), nil
56}
57
58// XLSXToWriter exports XLSX format to a writer.
59// Note: XLSX still materializes in memory due to excelize library limitations.

Callers 2

ExportAuditLogsMethod · 0.92
XLSXToWriterFunction · 0.85

Calls 3

ExcelColumnNameFunction · 0.85
CloseMethod · 0.65

Tested by

no test coverage detected