Самый легкий путь не состоял бы в том, чтобы передать 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)
Вот различных способов подключения к файлу 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);
}
Вы можете использовать поток 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();
}