Go - возможно ли зашифровать книгу Excel - PullRequest
0 голосов
/ 23 июня 2019

Я проверил пакет excelize , есть функция ProtectSheet.Однако это только защищает лист от изменений и т. Д., Не защищая от несанкционированного доступа.

Я искал несколько других опций / пакетов, и они, кажется, не предлагают такие возможности.

Я знаючто в конечном итоге я все еще могу защитить файл Excel с помощью пароля, но гораздо лучше защитить саму книгу.

1 Ответ

0 голосов
/ 06 июля 2019

После некоторых исследований кажется, что нет пакетов Go, которые могли бы достичь этого. Однако я наткнулся на пакет npm - secure-могущество , способный защитить паролем файл Excel.

Поскольку мне нужно было запрограммировать операцию защиты паролем в Go, я запустил команду os в коде Go, чтобы вызвать пакет npm для защиты файла паролем.

Программа Go развернута и выполняется в альпийском контейнере, в который я могу установить node-npm и получить доступ к команде npx.

пример кода:

func passProtectExcelWorkbook(filename, outFilename string) error {
    passwd := "password"
    cat := exec.Command("cat", filename)
    excel := exec.Command("npx", "secure-spreadsheet", "--password", passwd, "--input-format", excelExt)

    file, err := os.Create(outFilename)
    if err != nil {
        return fmt.Errorf("error when creating excel file: %v err: %v", outFilename, err)
    }

    defer file.Close()

    excel.Stdin, err = cat.StdoutPipe()
    if err != nil {
        return fmt.Errorf("error when reading from cat command output: %v", err)
    }

    excel.Stdout = file

    if err := excel.Start(); err != nil {
        return fmt.Errorf("error when starting npx command: %v", err)
    }

    if err := cat.Run(); err != nil {
        return fmt.Errorf("error when running cat command: %v", err)
    }

    return excel.Wait()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...