Считайте защищенный паролем файл Excel с помощью OLEDB в C#

Самый легкий путь не состоял бы в том, чтобы передать bars через различные функции, но получить доступ к нему непосредственно от maptest:

foos = [1.0,2.0,3.0,4.0,5.0]
bars = [1,2,3]

def maptest(foo):
    print foo, bars

map(maptest, foos)

С Вашим оригиналом maptest функционируют, Вы могли также использовать функцию лямбды в map:

map((lambda foo: maptest(foo, bars)), foos)
11
задан UJ. 31 August 2009 в 06:18
поделиться

2 ответа

Вот различных способов подключения к файлу Excel , включая OLEDB. Согласно этому, вы не можете открыть файл, защищенный паролем, стандартными методами. Вы должны использовать обходной путь.

Если книга Excel защищена пароль, вы не можете его открыть для доступ к данным, даже если правильный пароль с вашим подключением строка. Если вы попробуете, вы получите следующее сообщение об ошибке: «Не удалось расшифровать файл.

Это решение , хотя и не на C #, но вы можете легко адаптировать его для своих целей.

Если вы сами не ЗНАЕТЕ пароль, альтернативой является переписывание пароля файл без пароля. Вы можете использовать этот удобный проект и добавить к нему следующую процедуру:

public void SaveFile()

        {
            this.excelWorkbook.SaveAs(
                this.excelWorkbook.FullName,
                vk_format,
                "",
                vk_write_res_password,
                vk_read_only,
                null,
                Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
                null,
                vk_add_to_mru,
                null,null,vk_local);
        }

Полная информация здесь .

5
ответ дан 3 December 2019 в 08:30
поделиться

Вы можете использовать поток OoXmlCrypto для доступа к зашифрованным файлам Office 2007. Открытый исходный код, включает модифицированный пакет ExcelPackage.

Пример кода:

using (OfficeCryptoStream stream = OfficeCryptoStream.Open("a.xlsx", "password"))
{
    // Do stuff (e.g. create System.IO.Packaging.Package or 
    // ExcelPackage from the stream, make changes and save)

    // Change the password (optional)
    stream.Password = "newPassword";

    // Encrypt and save the file
    stream.Save();
}
2
ответ дан 3 December 2019 в 08:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: