Откройте файл книги Excel, используя встроенный ресурс - PullRequest
3 голосов
/ 10 ноября 2011

Я использую Microsoft Office Interop для открытия файлов Excel. Файл помещается в специальную папку, откуда код рабочей книги читает файл. Теперь требуется, чтобы файл Excel можно было разместить где угодно. Я считаю, что лучший способ - прикрепить файл Excel как встроенный ресурс. Но если я приложу как встроенный ресурс, как я буду читать файл, используя книгу Excel.

_excelapplication.Workbooks.Open(Filename: pExcelTemplatePath);

Как лучше всего читать файл шаблона Excel независимо от его местоположения?

Ответы [ 2 ]

6 голосов
/ 10 ноября 2011

Вы не можете открыть его непосредственно из встроенных ресурсов - по крайней мере, с помощью Interop ...

Вам нужно будет сохранить его где-нибудь в виде файла - т.е. сначала прочитать его из ресурса (например,Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceNameOfEmbeddedExcelFile)), а затем записать этот поток в какое-то место, например ApplicationData / CommonApplicationData / LocalApplicationData / MyDocuments / CommonDocuments из Environment.SpecialFolder

Другоевариант будет использовать библиотеку, способную открывать / редактировать файлы Excel из потока - дайте мне знать, если вам нужны ссылки на библиотеки ...

0 голосов
/ 17 декабря 2012

Сначала вы должны получить поток вашего файла ресурсов, используя эту функцию:

 public static Stream GetResourceFileStream(string fileName)
            {
                Assembly currentAssembly = Assembly.GetExecutingAssembly();
                // Get all embedded resources
                string[] arrResources = currentAssembly.GetManifestResourceNames();

                foreach (string resourceName in arrResources)
                {
                    if (resourceName.Contains(fileName))
                    {
                        return currentAssembly.GetManifestResourceStream(resourceName);
                    }
                }

                return null;
            }

Затем вы можете сохранить поток в файл: Как сохранить поток в файл .

И откройте его: Как открыть файл Excel в C # .

...