Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 23.12.2017, 21:46   #1
Trial
Истребитель кофе
Пользователь
 
Аватар для Trial
 
Регистрация: 04.02.2010
Адрес: Уральский ФО
Сообщений: 15
Репутация: 10
По умолчанию Открытие зашифрованного файла 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файла .doc с помощью VBA ruavia3 Microsoft Office Excel 19 03.03.2015 16: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


17:25.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru