Ошибка при добавлении строк в таблицу Excel рабочей книги sharepoint MaxRequestDurationExceeded

Вот полная ошибка

{
    "error": {
        "code": "MaxRequestDurationExceeded",
        "message": "We're sorry. We couldn't finish what you asked us to do because it was taking too long.",
        "innerError": {
            "code": "gatewayTimeoutUncategorized",
            "message": "The service wasn't able to complete the request within the time limit.",
            "innerError": {
                "code": "MaxRequestDurationExceeded",
                "message": "We're sorry. We couldn't finish what you asked us to do because it was taking too long."
            },
            "date": "2020-11-24T02:48:23",
            "request-id": "a3f533ea-3d8e-4bb6-aa71-4eaf10b79364",
            "client-request-id": "a3f533ea-3d8e-4bb6-aa71-4eaf10b79364"
        }
    }
}

когда я пытаюсь добавить записи в файл Excel, я получаю это сообщение об ошибке, которое немного неясно. Сначала я отправлял от 5 до 8 тысяч записей Excel на пост, поэтому подумал, что отправляю слишком много. я отправил только 3k записей для каждого сообщения, но все равно получаю эту ошибку.

Я предположил, что файлу excel sharepoint нужно некоторое время, чтобы обновить недавно опубликованные данные, поэтому я добавил задержку на 3 минуты после команды post, но я получаю сообщение об ошибке

Я также пробовал в почтальоне, где я отправляю только 1 тестовую запись, и я все еще получаю ту же ошибку, не знаю почему.

При дальнейшей проверке выясняется, что существует ограничение на размер книги в sharepoint. 50 МБ - это предел, а размер нашего файла Excel уже составляет 40 МБ. Он уже близок, но у меня осталось еще 10 мб, так что проблем быть не должно.

В настоящее время файл sharepoint в Excel содержит более миллиона записей.

**да, нам, возможно, придется переосмыслить рассмотрение файла excel sharepoint как базы данных, но сейчас я хотел бы посмотреть, что вызывает упомянутую ошибку, поскольку она не дает подробностей.

edit: дополнительные сведения, ранее, когда я проверял, есть несколько случаев, когда тестовые записи фактически добавляются в файл excel, но ответ по-прежнему является упомянутым сообщением об ошибке

также я не публиковал код, так как он работал на прошлой неделе, поэтому я думаю, что ошибка связана не с моим кодом, а из-за некоторых других переменных, о которых я не знаю

3 ответа

Решение

Похоже , что sharepoint теперь позволяет добавлять больше файлов Excel, поскольку в нем уже есть множество записей. согласно этим ограничениям:

https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3

https://support.microsoft.com/en-us/office/file-size-limits-for-workbooks-in-sharepoint-9e5bc6f8-018f-415a-b890-5452687b325e

но все же немного странно, что конечная точка не возвращает более информативное сообщение об ошибке.

Еще одна вещь, которую следует учитывать: используете ли вы патч или публикацию в диапазоне адресов. По моим наблюдениям, патч работает довольно медленно по сравнению с постом. Точнее, по моему опыту, диапазон обновления в 2–10 раз медленнее, чем диапазон вставки. Ниже приведены ссылки на два API, о которых я говорю.

      https://learn.microsoft.com/en-us/graph/api/range-update?view=graph-rest-1.0&tabs=http

https://learn.microsoft.com/en-us/graph/api/range-insert?view=graph-rest-1.0&tabs=http
  • Похоже, эта проблема возникает, когда книге требуется больше времени, чем (время, установленное по умолчанию), чтобы открыть в Excel в Интернете, чтобы проверить, есть ли какие-либо улучшения.
  • Проверить, можно ли открыть указанный файл Excel в клиенте Excel? Проверьте, много ли у вас пустых столбцов. Вы заметили, что здесь может быть пустой столбец с миллионами ячеек. Итак, вы пробовали удалить, сохранить, запустить вызов API. Также предлагается, когда в книге слишком много стилей, форм или форматирования ячеек, это может привести к тому, что Excel Online будет открывать файл во много раз дольше, чем обычно.
  • Поделился документом.