Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2017, 20:46   #1
Trial
Истребитель кофе
Пользователь
 
Аватар для Trial
 
Регистрация: 04.02.2010
Сообщений: 15
По умолчанию Открытие зашифрованного файла Excel с помощью NPOI

Здравствуйте всем коллеги.
Измучился уже попытками открыть запароленный файл Excel при помощи библиотеки NPOI.

Перелопатил все зарубежные форумы кто пытался это сделать, предлагают решения, но у меня они не работают, в офф документации также мало чего нашёл.

Самый популярный в инете ответ на этот вопрос является ответ Ханса на сайте stackoverflow. там от предлагает скомбинировать классы XSSFWorkbook и OfficeCryptoStream и использовать следующий код для чтения:
Код:
using (OfficeCryptoStream ocs = OfficeCryptoStream.Open("c:\\temp\\secured.xlsx", "PA$$W0rd"))
{
  NPOI.XSSF.UserModel.XSSFWorkbook w = new NPOI.XSSF.UserModel.XSSFWorkbook(ocs);
  NPOI.xssf.extractor.XSSFExcelExtractor ee = new NPOI.xssf.extractor.XSSFExcelExtractor(w);
  Console.Out.WriteLine(ee.Text);                    
}
Я не могу понять что за класс такой OfficeCryptoStream, в пространстве имён System.Security.Cryptography такого нет и в инете по этому классу мало чего нашёл

Далее он предлагает воспользоваться библиотекой EPPlus и классом ExcelPackage и для открытия зашифрованного файла следующим кодом
Код:
using (FileStream file = new FileStream("c:\\temp\\secure.xlsx", 
       FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite))
{
  using (ExcelPackage ep = new ExcelPackage(file, "P@$$W0rd"))
  {
    Console.Out.WriteLine(ep.Workbook.Worksheets[1].Cells["A1"].Value);     
  }
}
Попробовал опять мимо, компилятор ругается на параметры ExcelPackage(file, "P@$$W0rd"), а именно file - что оно должно быть не FileStream а FileInfo и "P@$$W0rd" - что кароче его там вообще не должно быть попробовал объявить информацию для пути файла через FileInfo file = new FileInfo("c:\\temp\\secure.xlsx"); и на file ругаться перестал а вот параметр с паролем там вообще отсутствует в ExcelPackage имею ввиду.
Есть ещё один вариант предложенный Хансом но он такой же как предыдущий только там для открытия он предлагает воспользоваться комбинацией класса OpenXml 2.0 SDK SpreadsheetDocument и ExcelPackage его я тоже попробовал только там компилятор вообще сума сходит.

Кто нибудь сталкивался с решением такой задачи подскажите пожалуйста, потому что из рускоязычных источников этот вопрос почти никто не решал как я понял, так будем одни из первых))
Заранее благодарю за ответ.
Trial вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файла .doc с помощью VBA ruavia3 Microsoft Office Excel 19 03.03.2015 15:22
Открытие файла с помощью программы ZotaC Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 28.08.2010 20:54
Открытие файла с помощью GetOpenFileName eda Microsoft Office Excel 1 08.07.2009 14:29
открытие файла Excel Deni55 Общие вопросы Delphi 3 15.06.2009 15:30
Открытие файла с помощью моей программы igroman Общие вопросы Delphi 3 09.06.2008 09:12