ssa

Форк
0
/
systems.go 
101 строка · 2.8 Кб
1
package oss
2

3
import (
4
	"fmt"
5
	"os"
6
	"strconv"
7

8
	"github.com/xuri/excelize/v2"
9
	"gonum.org/v1/gonum/mat"
10
)
11

12
// ***
13
func SafeToXlsx(sig []float64, Path, FileName string) {
14
	file_graph := excelize.NewFile()
15
	file_graph.NewSheet("main")
16
	file_graph.DeleteSheet("Sheet1")
17
	for ind, val := range sig {
18
		file_graph.SetCellValue("main", "A"+strconv.Itoa(ind+1), val)
19
	}
20
	// "files" + OpSystemFilder + name + ".xlsx"
21
	if err := file_graph.SaveAs(Path + FileName); err != nil {
22
		fmt.Println(err)
23
	}
24
}
25
func SafeToXlsxMatrix(X *mat.Dense, Path, FileName string) {
26
	file_graph := excelize.NewFile()
27
	file_graph.NewSheet("main")
28
	file_graph.DeleteSheet("Sheet1")
29
	n, m := X.Dims()
30
	for i := 0; i < n; i++ {
31
		for j := 0; j < m; j++ {
32
			file_graph.SetCellValue("main", GetColumnName(j+1)+strconv.Itoa(i+1), X.At(i, j))
33
		}
34
	}
35
	// Path + "files" + OpSystemFilder + xlsxName + ".xlsx"
36
	if err := file_graph.SaveAs(Path + FileName); err != nil {
37
		fmt.Println(err)
38
	}
39
	file_graph.Close()
40
}
41
func SafeToXlsxDualArray(X [][]float64, Path, FileName string) {
42
	file_graph := excelize.NewFile()
43
	file_graph.NewSheet("main")
44
	file_graph.DeleteSheet("Sheet1")
45
	for ind1, val1 := range X {
46
		for ind2, val2 := range val1 {
47
			file_graph.SetCellValue("main", GetColumnName(ind2+1)+strconv.Itoa(ind1), val2)
48
		}
49
	}
50
	// Path + "files" + OpSystemFilder + xlsxName + ".xlsx"
51
	if err := file_graph.SaveAs(Path + FileName); err != nil {
52
		fmt.Println(err)
53
	}
54
	file_graph.Close()
55
}
56
func SafeToXlsxM(X mat.Dense, FilePathName string) {
57
	file_graph := excelize.NewFile()
58
	file_graph.NewSheet("main")
59
	file_graph.DeleteSheet("Sheet1")
60
	n, m := X.Dims()
61
	for i := 0; i < n; i++ {
62
		for j := 0; j < m; j++ {
63
			file_graph.SetCellValue("main", GetColumnName(j+1)+strconv.Itoa(i+1), X.At(i, j))
64
		}
65
	}
66
	// Path + "files" + OpSystemFilder + xlsxName + ".xlsx"
67
	if err := file_graph.SaveAs(FilePathName); err != nil {
68
		fmt.Println(err)
69
	}
70
	file_graph.Close()
71
}
72
func GetColumnName(col int) string { /*
73
		name := make([]byte, 0, 3) // max 16,384 columns (2022)
74
		const aLen = 'Z' - 'A' + 1 // alphabet length
75
		for ; col > 0; col /= aLen + 1 {
76
			name = append(name, byte('A'+(col-1)%aLen))
77
		}
78
		for i, j := 0, len(name)-1; i < j; i, j = i+1, j-1 {
79
			name[i], name[j] = name[j], name[i]
80
		}
81
		return string(name)
82
	*/
83
	asd, _ := excelize.ColumnNumberToName(col)
84
	return asd
85
}
86

87
// Создать вложенные подпапки, если их не существует
88
func СreateFolderIfNotExists(folderPath string) error {
89
	_, err := os.Stat(folderPath)
90
	if os.IsNotExist(err) {
91
		err := os.MkdirAll(folderPath, os.ModePerm)
92
		if err != nil {
93
			return err
94
		}
95
		// fmt.Printf("Папка %s создана\n", folderPath)
96
	} else if err != nil {
97
		return err
98
	}
99
	// else { fmt.Printf("Папка %s уже существует\n", folderPath)	}
100
	return nil
101
}
102

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.