Чтение вложения Excel на событие itemAdded - PullRequest
0 голосов
/ 18 ноября 2011

Я пытаюсь прочитать файл Excel, который загружен по событию itemadded.Мне нужно обновить столбец метаданных библиотеки документов, прочитав загруженный лист Excel.Но я получаю следующую ошибку:

enter image description here

Вот мой код,

   SPItem item = properties.ListItem;

   string workbookpath = "http://server/sites/dev/Published%20documents/Test.xlsx";
   ApplicationClass excel = new ApplicationClass();
   excel.Visible = false;

   Workbook excelWorkBook = excel.Workbooks.Open(workbookpath, 0, true, 5, "", "", false, XlPlatform.xlWindows, "", true, false, 0, true, false, false);

   Sheets sheets = excelWorkBook.Worksheets;
   Worksheet worksheet = (Worksheet)sheets.get_Item(1);
   Range range = worksheet.get_Range("A1", "A1");

   item["Status"] = (string)range.Cells.Value2;

   item.Update();

   base.ItemAdded(properties);

Для целей тестирования я жестко закодировал путь к файлу Excel.

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

Я думаю, что проблема, которую вы документируете, находится в состоянии проверки, потому что вы открыли ее из приложения Excel, поэтому вам нужно сделать следующее:

  1. закрыть приложение Excel
  2. Верните документ обратно, чтобы сохранить изменения или отменить извлечение (используйте item.CheckIn() или item.UndoCheckOut())

после этого вы сможете обновить свойства элемента

1 голос
/ 18 ноября 2011

Посмотрите на этот пост в блоге. Я думаю, что это поможет

http://hristopavlov.wordpress.com/2008/05/14/uploading-a-file-event-receivers-the-file-has-been-modified-by/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...