none
Создание документа в библиотеке, используя шаблон библиотеки документов. RRS feed

  • Вопрос

  • Добрый день, коллеги! Имеется задача: создать документ, заполненный полями из разных списков и элементов. Но при создании даже пустого word файла возникает ошибка "К сожалению, не удается открыть этот файл из-за проблем с его содержимым".

    Подскажите, пожалуйста, что не так с моим кодом? p.s. код прикрепляю ниже

    private void CreateDocument()
            {
                try
                {
                    var oWeb = SPContext.Current.Web;
                    var oLib = oWeb.Lists["ListName"] as SPDocumentLibrary;
                    if (oLib == null) return;
                    var oLibTemplate = oWeb.Url + oLib.RootFolder.ServerRelativeUrl + @"/Forms/template.dotx";
                    
    
                    SPFile templateFile = oWeb.GetFile(oLibTemplate);
                    if (templateFile == null) return;
    
                    oWeb.AllowUnsafeUpdates = true;
    
                    Stream readStream = templateFile.OpenBinaryStream();
                    SPFile uploadedFile = oLib.RootFolder.Files.Add(oLib.RootFolder.ServerRelativeUrl + @"/Report_" + itemId + ".docx", readStream, true);
                    uploadedFile.Update();
                    oLib.Update();
    
                    oWeb.AllowUnsafeUpdates = false;
                }
                catch (Exception exception)
                {
                    Logger.Instance.Error("Generate Document In Library is failed", exception.Message);
                    throw;
                }
            }
    18 августа 2016 г. 10:07

Ответы

  • Скажите пожалуйста, а у вас столбцы списков и библиотек являются столбцами сайта ? Или собственными типами контента ? + В каком-то столбце может появляться значение с недопустимыми символами.

    1. Документ генерируется корректно если формат файла шаблона документа docx

    2. Все столбцы списков и библиотек, участвующих в создании документа являются столбцами сайта.

    • Помечено в качестве ответа alukardeg 17 ноября 2016 г. 0:19
    19 сентября 2016 г. 6:47

Все ответы

  • Добрый день,

    шаблон файла для SharePoint должен быть не dotx, а docx. Код у вас в первом приближении верный.


    MS,MCTS,MCP,MCPD: SharePoint Developer 2010

    18 августа 2016 г. 13:07
  • К сожалению, это не помогло
    18 августа 2016 г. 13:27
  • К сожалению, это не помогло

    Добрый день,

    а какие ошибки теперь?


    MS,MCTS,MCP,MCPD: SharePoint Developer 2010

    24 августа 2016 г. 9:48
  • Да на самом деле в процессе создания файла ошибок не возникает. Но открыть этот файл потом не получается. Ошибка та же самая что и раньше
    9 сентября 2016 г. 21:09
  • Хай. 

    Ты читаешь в поток dotx... а сохраняешь его как docx. - это FAIL

    Сохрани его как dotx. И будет тебе счастье.

    Короче форматы должны совпадать.

    13 сентября 2016 г. 16:05
  • Скажите пожалуйста, а у вас столбцы списков и библиотек являются столбцами сайта ? Или собственными типами контента ? + В каком-то столбце может появляться значение с недопустимыми символами.

    1. Документ генерируется корректно если формат файла шаблона документа docx

    2. Все столбцы списков и библиотек, участвующих в создании документа являются столбцами сайта.

    • Помечено в качестве ответа alukardeg 17 ноября 2016 г. 0:19
    19 сентября 2016 г. 6:47
  • И тебе ХАЙ)

    Пересохранил формат шаблона в docx, но как написал выше - та же ошибка при открытии файла.

    22 сентября 2016 г. 21:52
  • Спасибо за ответ! Хмм, да, у меня в той библиотеке столбцы не сайта, а только этого списка. Как переделаю, отпишусь по результатам. Спасибо!
    22 сентября 2016 г. 21:54
  • Только только добрались руки до этой баги. Ииии, вроде как помогло!!! Я, конечно, особо не заморачивался с шаблоном документа, но он хотя бы не выкидывает ошибку, что имеются проблемы с содержимым документа.

    Спасибо всем большое!

    14 ноября 2016 г. 18:39