Ошибка экспорта данных в excel в позиции строка отсутствует
CSV является стандартом де-факто для связи между собой разнородных систем, для передачи и обработки объемных данных с «жесткой», табличной структурой. Во многих скриптовых языках программирования есть встроенные средства разбора и генерации, он хорошо понятен как программистам, так и рядовым пользователям, а проблемы с самими данными в нем хорошо обнаруживаются, как говорится, на глаз.
История этого формата насчитывает не менее 30 лет. Но даже сейчас, в эпоху повального использования XML, для выгрузки и загрузки больших объемов данных по-прежнему используют CSV. И, несмотря на то, что сам формат довольно неплохо описан в RFC, каждый его понимает по-своему.
В этой статье я попробую обобщить существующие знания об этом формате, указать на типичные ошибки, а также проиллюстрировать описанные проблемы на примере кривой реализации импорта-экспорта в Microsoft Office 2007. Также покажу, как обходить эти проблемы (в т.ч. автоматическое преобразование типов Excel-ом в DATETIME и NUMBER) при открытии .csv.
Начнем с того, что форматом CSV на самом деле называют три разных текстовых формата, отличающихся символами-разделителями: собственно сам CSV (comma-separated values — значения, разделенные запятыми), TSV (tab-separated values — значения, разделенные табуляциями) и SCSV (semicolon separated values — значения, разделенные точкой с запятой). В жизни все три могут называться одним CSV, символ-разделитель в лучшем случае выбирается при экспорте или импорте, а чаще его просто «зашивают» внутрь кода. Это создает массу проблем в попытке разобраться.
Как иллюстрацию возьмем казалось бы тривиальную задачу: импортировать в Microsoft Outlook данные из таблицы в Microsoft Excel.
В Microsoft Excel есть средства экспорта в CSV, а в Microsoft Outlook — соответствующие средства импорта. Что могло быть проще — сделал файлик, «скормил» почтовой программе и — дело сделано? Как бы не так.
Создадим в Excel тестовую табличку:
… и попробуем экспортировать ее в три текстовых формата:
«Текст Unicode» | Кодировка — UTF-16, разделители — табуляция, переводы строк — 0×0D, 0×0A, объем файла — 222 байт |
«CSV (разделители — запятые)» | Кодировка — Windows-1251, разделители — точка с запятой (не запятая!), во второй строке значение телефонов не взято в кавычки, несмотря на запятую, зато взято в кавычки значение «01;02», что правильно. Переводы строк — 0×0D, 0×0A. Объем файла — 110 байт |
«Текстовые файлы (с разделителями табуляции)» | Кодировка — Windows-1251, разделители — табуляция, переводы строк — 0×0D, 0×0A. Значение «01;02» помещено в кавычки (без особой нужды). Объем файла — 110 байт |
Какой вывод мы делаем из этого. То, что здесь Microsoft называет «CSV (разделители — запятые)», на самом деле является форматом с разделителями «точка с запятой». Формат у Microsoft — строго Windows-1251. Поэтому, если у вас в Excel есть Unicode-символы, они на выходе в CSV отобразятся в вопросительные знаки. Также то, что переводами строк является всегда пара символов, то, что Microsoft тупо берет в кавычки все, где видит точку с запятой. Также то, что если у вас нет Unicode-символов вообще, то можно сэкономить на объеме файла. Также то, что Unicode поддерживается только UTF-16, а не UTF-8, что было бы сильно логичнее.
Теперь посмотрим, как на это смотрит Outlook. Попробуем импортировать эти файлы из него, указав такие же источники данных. Outlook 2007: Файл -> Импорт и экспорт… -> Импорт из другой программы или файла. Далее выбираем формат данных: «Значения, разделенные запятыми (Windows)» и «Значения, разделенные табуляцией (Windows)».
«Значения, разделенные табуляцией(Windows)» | Скармливаем аутлуку файл tsv, с разделенными табуляцией значениями и. — чтобы вы думали. Outlook склеивает поля и табуляцию не замечает. Заменяем в файле табуляцию на запятые и, как видим, поля уже разбирает, молодец. |
«Значения, разделенные запятыми (Windows)» | А вот аутлук как раз понимает все верно. Comma — это запятая. Поэтому ожидает в качестве разделителя запятую. А у нас после экселя — точка с запятой. В итоге аутлук распознает все неверно. |
Два майкрософтовских продукта не понимают друг друга, у них напрочь отсутствует возможность передать через текстовый файл структурированные данные. Для того, чтобы все заработало, требуются «пляски с бубном» программиста.
Мы помним, что Microsoft Excel умеет работать с текстовыми файлами, импортировать данные из CSV, но в версии 2007 он делает это очень странно. Например, если просто открыть файл через меню, то он откроется без какого-либо распознавания формата, просто как текстовый файл, целиком помещенный в первую колонку. В случае, если сделать дабл-клик на CSV, Excel получает другую команду и импортирует CSV как надо, не задавая лишних вопросов. Третий вариант — вставка файла на текущий лист. В этом интерфейсе можно настраивать разделители, сразу же смотреть, что получилось. Но одно но: работает это плохо. Например, Excel при этом не понимает закавыченных переводов строк внутри полей.
Более того, одна и та же функция сохранения в CSV, вызванная через интерфейс и через макрос, работает по-разному. Вариант с макросом не смотрит в региональные настройки вообще.
Стандарта CSV как такового, к сожалению, нет, но, между тем, существует т.н. memo. Это RFC 4180 года, в котором описано все довольно толково. За неимением ничего большего, правильно придерживаться хотя бы RFC. Но для совместимости с Excel следует учесть его собенности.
Вот краткая выжимка рекомендаций RFC 4180 и мои комментарии в квадратных скобках:
- между строками — перевод строки CRLF [на мой взгляд, им не стоило ограничивать двумя байтами, т.е. как CRLF (0×0D, 0×0A), так и CR 0×0D]
- разделители — запятые, в конце строки не должно быть запятой,
- в последней строке CRLF не обязателен,
- первая строка может быть строкой заголовка (никак не помечается при этом)
- пробелы, окружающие запятую-разделитель, игнорируются.
- если значение содержит в себе CRLF, CR, LF (символы-разделители строк), двойную кавычку или запятую (символ-разделитель полей), то заключение значения в кавычки обязательно. В противном случае — допустимо.
- т.е. допустимы переводы строк внутри поля. Но такие значения полей должны быть обязательно закавычены,
- если внутри закавыченной части встречаются двойные кавычки, то используется специфический квотинг кавычек в CSV — их дублирование.
Вот в нотации ABNF описание формата:
Также при реализации формата нужно помнить, что поскольку здесь нет указателей на число и тип колонок, поскольку нет требования обязательно размещать заголовок, здесь есть условности, о которых необходимо не забывать:
- строковое значение из цифр, не заключенное в кавычки может быть воспринято программой как числовое, из-за чего может быть потеряна информация, например, лидирующие нули,
- количество значений в каждой строке может отличаться и необходимо правильно обрабатывать эту ситуацию. В одних ситуациях нужно предупредить пользователя, в других — создавать дополнительные колонки и заполнять их пустыми значениями. Можно определиться, что количество колонок задается заголовком, а можно добавлять их динамически, по мере импорта CSV,
- Квотить кавычки через «слэш» не по стандарту, делать так не надо.
- Поскольку типизации полей нет, нет и требования к ним. Разделители целой и дробной частей в разных странах разные, и это приводит к тому, что один и тот же CSV, сгенрированный приложением, в одном экселе «понимается», в другом — нет. Потому что Microsoft Office ориентируется на региональные настройки Windows, а там может быть что угодно. В России там указано, что разделитель — запятая,
- Если CSV открывать не через меню «Данные», а напрямую, то Excel лишних вопросов не задает, и делает как ему кажется правильным. Например, поле со значением 1.24 он понимает по умолчанию как «24 января»
- Эксель убивает ведующие нули и приводит типы даже тогда, когда значение указано в кавычках. Делать так не надо, это ошибка. Но чтобы обойти эту проблему экселя, можно сделать небольшой «хак» — значение начать со знака «равно», после чего поставить в кавычках то, что необходимо передать без изменения формата.
- У экселя есть спецсимвол «равно», который в CSV рассматривается как идентификатор формулы. То есть, если в CSV встретится =2+3, он сложит два и три и результат впишет в ячейку. По стандарту он это делать не должен.
Пример валидного CSV, который можно использовать для тестов:
точно такой же SCSV:
Первый файлик, который реально COMMA-SEPARATED, будучи сохраненным в .csv, Excel-ом не воспринимается вообще.
Второй файлик, который по логике SCSV, экселом воспринимается и выходит вот что:
- Учлись пробелы, окружающие разделители
- Последний столбец вообще толком не распознался, несмотря на то, что данные в кавычках. Исключение составляет строка с «Петровым» — там корректно распозналось 1,24.
- В поле индекс Excel «опустил» ведущие нули.
- в самом правом поле последней строки пробелы перед кавычками перестали указывать на спецсимвол
Если же воспользоваться функционалом импорта (Данные -> Из файла) и обозвать при импорте все поля текстовыми, то будет следующая картина:
С приведением типов сработало, но зато теперь не обрабатываются нормально переводы строк и осталась проблема с ведущими нулями, кавычками и лишними пробелами. Да и пользователям так открывать CSV крайне неудобно.
Есть эффективный способ, как заставить Excel не приводить типы, когда это нам не нужно. Но это будет CSV «специально для Excel». Делается это помещением знака «=» перед кавычками везде, где потенциально может возникнуть проблема с типами. Заодно убираем лишние пробелы.
И вот что случаеся, если мы открываем этот файлик в экселе:
В предыдущих видео мы освоили принципы настройки программы. Теперь мы покажем как действовать в случаях, когда созданная настройка работает не так, как хотелось бы. Настоятельно рекомендуем просмотреть видео ОТ НАЧАЛА И ДО КОНЦА! Для тех, кто вечно спешит))), под видео приведены ссылки на его отдельные части, касающиеся специфических моментов диагностики.
Для выборочного просмотра:
Напомним, что в Datacol Вы так-же найдете уже готовые парсера:
Для сбора контента:
Для работы с соц. сетями:
Для начала разберемся, в каких случаях кампания работает некорректно. Во-первых, о некорректной работе говорит отсутствие результатов сбора данных после завершения работы кампании. Кроме того, если результатов нет в течение 2-3 минут (даже если кампания еще выполняется), это также чаще всего свидетельствует о некорректной настройке. Напомним, результаты работы кампании отображаются в соответствующей панели после ее запуска. Первые результаты появляются в тот же момент, когда программа их находит.
Как видим, предварительно можно сделать вывод, что кампания работает корректно, ведь результаты появились.
Во-вторых, об ошибках настройки свидетельствует слишком малое количество результатов, по крайней мере, меньше того, которое мы ожидали собрать. Однако этот критерий относителен, ведь в интерфейсе программы по умолчанию отображаются только первые 50 найденных результатов. В полном объеме данные доступны после экспорта в файл, CMS или базу данных. Данное ограничение можно изменить в настройках кампании.
Также, стоит помнить, что демо версия программы собирается не более 25 результатов.
В-третьих, одно или несколько полей данных могут вообще не собираться. Это видно по пустым колонкам в таблице результатов.
Обратите внимание, что это актуально только если вся колонка пустая (то есть значение не найдено ни на одной странице). Это можно проверить применив разные виды сортировки к таблице. Если же нашлось хотя бы несколько групп данных с заполненным значением поля, то это обычно значит, что: либо, поле данных доступно не на всех страницах, либо на разных страницах оно должно получаться с помощью разных сигнатур, либо подобранные сигнатуры можно сделать более универсальными, чтобы значение поля находилось везде, где оно есть. Под сигнатурами здесь подразумеваются xpath или регулярные выражения.
Четвертый случай — это отсутствие выгруженных в соответствии с настройками экспорта результатов работы кампании. Имеется в виду, что результаты получены (то есть видны в панели результатов), однако не сохранены в файл, CMS или базу данных.
Теперь мы покажем как действовать в каждом из вышеописанных случаев, чтобы определить в чем конкретно заключается проблема, а также решить ее либо наметить направление решения.
Есть один универсальный прием, который стоит попробовать перед исследованием любых проблем, кроме тех, которые касаются экспорта собранных данных. Нужно заменить стандартный загрузчик на браузер. Суть в том, что изначально настройка кампании осуществляется с помощью мастера, в которым вебстраницы грузятся именно браузером, а не встроенным загрузчиком Datacol. Поэтому, если для работы, из соображений скорости обработки, все же выбран стандартный загрузчик, могут возникать непредвиденные ситуации. Они объясняются тем, что встроенный загрузчик и браузер, грузят страницы и формируются DOM модель по разному. Для примера данная кампания. Запускаем и видим, что кампания быстро завершается, при этом не собрав данных вообще. Установим браузер в качестве загрузчика. Проверяем. Теперь все нормально. Обратите внимание, если в качестве загрузчика используется плагин, то данный шаг можно пропустить, поскольку в таких случаях он обычно не дает результата.
Если установка браузера в качестве загрузчика не помогла решить проблему, то можно вернуть начальные настройки.
Теперь рассмотрим первые 2 случая, в частности, когда данные вообще не найдены, либо их найдено слишком мало. Здесь стоит начать с изучения логов. Практически всегда логи позволяют определить причину неполадки. Рассмотрим это на нескольких примерах. Запустим настройку. Кампания завершилась без результатов. Просмотрим ее логи.
Теперь результаты появляются и все отрабатывает как надо. Заметим, что если после увеличения таймаута хотя бы до 20-30 секунд проблема остается, то чаще всего сайт либо висит, либо заблокировал нас. Это можно проверить открыв страницу сайта в обычном браузере на нашем компьютере. Помимо того, ошибки загрузки могут возникать в сценарии браузера. Об их диагностике и исправлении мы поговорим в дальнейших видео.
Рассмотрим еще один пример. Опять же, кампания завершилась, а результатов нет. Откроем лог. В нем мы видим, что в самом начале работы на исходной странице, ссылок не найдено. Соответственно Datacol остановил свою работу, поскольку в очередь не было добавлено новых страниц для обработки. Для начала стоит проверить, а есть ли они вообще на странице. Чтобы это сделать, откроем страницу в нашем браузере по умолчанию. Это можно сделать кликнув по ссылке левой кнопкой мыши.
Видим, что ссылки на посты, а также ссылки пагинации присутствуют. Значит проблема скорее всего заключается в некорректно заданных правилах сбора ссылок. В большинстве случаев подкорректировать настройки сбора ссылок можно с помощью пикера. Задано 2 xpath выражения, однако найденных соответствий нет. Некорректные xpath выражения можно удалить. Теперь подберем новые, корректные. Принципы подбора Xpath для сбора ссылок были изложены в первых видеоинструкциях. Сохраняем подобранные сигнатуры. Запускаем кампанию для теста. Теперь результаты появляются и все отрабатывает как надо.
Рассмотрим другой пример. Видим, что поле “регион работы” не собирается. Опять же, перед тем как грешить на настройку, проверим наличие информации на самом исходном сайте. Данные присутствуют, поэтому ищем проблему в настройке.
Наиболее вероятная причина — некорректно настроенные сигнатуры сбора данных, то есть xpath или регулярные выражения. Предварительно для корректировки можно воспользоваться Picker-ом. Кликнем дважды левой кнопкой на поле данных, чтобы открыть пикер в режиме подбора сигнатур для полей данных.
Вариант xpath задан, однако найденных соответствий нет. Тогда кликаем на нужных данных, чтобы автоматически подобрать новый xpath и подкорректировать ранее созданный. Все получилось. Сохраняем. Перезапускаем кампанию.
Сейчас мы только упомянем, что если пустым оказывается поле с изображением, которое мы загружаем на локальный компьютер, то первым делом стоит проверить включен ли режим сохранения тегов, а уже потом переходить к другим мероприятиям. Например протестируем кампанию. Видим, что поле фото пустое. Проверим включено ли сохранение тегов. Оно выключено. Включим его. Протестируем повторно. Теперь все работает корректно. Более подробно о диагностике проблем сохранения изображений мы поговорим в дальнейших видео.
Рассмотрим случай отсутствия выгруженных в соответствии с настройками экспорта результатов работы кампании. Напомним, при настройке с помощью мастера собранные данные по умолчанию должны выгружаться в Excel файл, который генерируется после окончания работы кампании в папке Мои документы. Имя файла по умолчанию соответствует названию кампании. Заметим, что при наличии результатов сбора данных файл должен генерироваться внезависимости от того завершилась ли кампания сама, либо была остановлена пользователем. Однако настройки сохранения можно переопределить. В дереве быстрой настройки видно, какие форматы экспорта используются в настройке.
Чаще всего, ошибки экспорта видны в логе. Кампания завершилась, перейдем в Мои документы. Файла с экспортом здесь нет. Посмотрим лог работы кампании. Перейдем в конец лога, ведь экспорт обычно осуществляется в конце работы. Здесь мы находим описание ошибки экспорта. Видимо она произошла из за того, что на компьютере нет директории, в которую настроено сохранение. Исправим это. Можно выбрать определенную папку для сохранения, а можно оставить путь пустой строкой. В последнем случае, сохранение будет осуществляться в папку Мои документы. Сохраним и протестируем. Теперь файл сохранился.
Более продвинутые методы диагностики и исправления ошибок работы кампаний будут приведены в дальнейших видео.
Имеется dataGridView на форме, из него циклом считываются строки и записываются в файл .xls, в dataGridView все данные текстовые. Однако, после открытия файла в Excel оказывается, что в одном из столбцов некорректно отображаются коды (например, формат должен быть типа 11.1.1 или 11.11.1 и т. д.), причем какие-то ячейки выглядят нормально, в некоторых вместо точки стоит запятая, а в некоторых вообще часть кода обрезается. Подскажите, пожалуйста, есть ли какой-нибудь способ экспортировать записи в неизменном виде, как они отображаются в dataGridView?
ProgressBar при экспорте данных из DataGridView в таблицу Excel
Добрый день! В приложении по нажатию кнопки данные из DataGridView экспортируются в таблицу excel.
Ошибка при экспорте таблицы DataGridView в Excel
При нажатии на кнопку выскакивает ошибка. подробности на картинке using System; using.
Не подскажите, куда именно добавлять? Если через .NumberFormat то не помогает, некоторые значения так же режет.
Решение
Спасибо, сработало. Сделал так:
Сумма строк при экспорте данных в Excel
здравствуйте, как написать код чтобы при экспорте выводило сумму строк например цену в отдельной.
Проблемы при экспорте данных из GridView в Excel
мой вопрос такой.. я создал GridView и пытаюсь его экспортировать в Excel. работает нормально, но.
Сложности при экспорте данных из Mathcad в Excel
Добрый вечер. Имеется следующая задача. В файле mathcad реализуется перебор параметров посредством.
Ошибка при экспорте данных из DBgrid в excel
Доброго времени суток! Возникла такая проблема: Выдает ошибку ( Unit1.pas(208): Undeclared.
Ошибка при экспорте данных из Access в Excel
При экспорте данных из Access в Excel у меня выскакивает ошибка, что 'число выводимых строк.
Ошибка при экспорте данных из Matlab в Excel
Помогите пожалуйста! Всё работало, данные выгружались в Excel и вдруг перестало! Выдает ошибку.
Пишу код и нужно извлечь значение поля из mssql, но выдаёт ошибку: System.IndexOutOfRangeException: "В позиции 0 строка отсутствует."
По тому же принципу код на другой форме работает(второй скрин)
Подскажите, пожалуйста, в чём проблема. Заранее спасибо
В позиции 1 строка отсутствует
Здравтвуйте у меня есть табличка DGV которую я заполняю данными из DT и есть одно полу куда.
Ошибка "В позиции -1 строка отсутствует."
При выборе из выпадающего списка любого значения получаю ошибку: System.IndexOutOfRangeException.
В позиции "№" строка отсутствует
Добавил в свое приложение локальную БД. Загрузил таблицу в источник данных. При попытке.
Определить содержится ли в строке А строка Б, если да, то вывести номер позиции
Даны строки a и b. Определить содержится ли в строке А строка Б, если да, то вывести номер позиции.
Ann562002, берите отладчик в руки и смотрите почему "В позиции 0 строка отсутствует." Умение пользоваться им есть решение 99% проблем.
запрос возвращает только строку с кодом и sda.Fill(dt);возвращает 0, но не могу понять, почему
1-2 фотки - не работает
3-4 - работает(другая форма)
Берите профилировщик базы данных и смотрите какой запрос прилетает на исполнения в базу. Умение пользоваться им есть решение 99% проблем с базой.
any в обоих случаях(вообще зависит от учётной записи, в которую зашли). Изменение в БД вносит, но ошибка сохраняется.
И что? Принцип один, а запрос и результаты разные.
Нет результатов - нет и строки. Помоему очевидно.
и как доказательство:
Зачем использовать адаптеры там, где они и нафиг не нужны ?
Все делается просто до безобразия:
1. ридером извлекается запись по логину и паролю.
2. Если есть, то простым command.executenonquery вносится изменение пароля.
Все запросы, естественно, параметрические
Никаких адаптеров, тэйблов и трехуровневых юзингов.
Весь код - десяток строк, не более.
На скринах закладка "Видимые". В нормальной английской версии это называется "Locals" (вроде бы).
Но не суть.
Вы говорите - "данные есть в результате". Я хочу увидеть их. dt.Rows покажите.
И очень неинформативные скрины. На одном скрине есть запрос и мы видим и данные для поиска и то что Fill вернул 1.
А там где 0 не видно ни запроса, ничего. Поэтому я и говорю что данных не хватает и нет уверенности в том что у вас нормальный запрос и результаты.
Ну и про простой запрос тоже сказали. Это просто проверка доступа, делать адаптеры просто бессмыслено. Вы туда пишете изменения?
1. ридером извлекается запись по логину и паролю.
2. Если есть, то простым command.executenonquery вносится изменение пароля.
Ошибка, по сути, та же самая, только данные есть и тот же запрос выполняется в БД, да и if на наличие данных возвращает true
Ошибка, по сути, та же самая, только данные есть и тот же запрос выполняется в БД, да и if на наличие данных возвращает true
Вот опять. Что вы тут "втираете"? На скрине написано - логин и пароль "an". И тут же в других скринах в БД ДРУГИЕ логины.
И где скрин тестового вида запроса который вы отправляете? Вы вот сами его возьмите и выполните в БД. Не ТО что вы хотите вызвать, а то что Фактически код выполняет. Command (cmd) объект смотрите, там вроде бы текстовый вид должен быть виден. Но блин, если красным написано textbox2="an" то что вы про "any" доказываете
Добавлено через 40 секунд
Функция этой формы в смене пароля. Раньше я говорила, что пароль меняет, но выдаёт ошибку уже после изменения пароля.
Если бы это было так, то if (reader.HasRows) возвращало бы false
Сейчас стало понятнее что вообще происходит.
Перестала корректно работать модель данных в Excel 2013 Стандартный (на работе) и 2016 Профессиональный (дома), а также 2016 на работе у друга (в другой организации).
Книга в которой раньше отлично работала модель данных теперь в списке полей сводной таблица в разделе "Значения" вместо списка добавленных туда для расчета Полей сводной таблицы показывает одно пустое поле (см. прикрепленный рисунок).
Здесь должен быть список полей добавленных в область "Значения". (сделать скриншот того как должно быть не представляется возможным, так как ни на одном компьютере к которому я имею доступ корректно не работает)
Но самое главное это при попытке создать в новой книге модель данных она совершенно не работает.
Пример: создаем 2 таблицы (именно форматированные как таблица Excel): Цвета и Смеси. В Таблице Цвета следующие поля: Код, Краска. В таблице Смеси поля: НомерСмеси, НазваниеСмеси, НомерКраски.
(в смесь 1 входят краски: 1,6,3;
в смесь 3 входят краски: 7, 9, 8, 4;
в смесь 4 входят краски: 1, 2, 3;
в смесь 5 входят краски: 6, 9;
в смесь 6 входят краски: 4;
в смесь 7 входят краски: 5, 6, 4;
в смесь 9 входят краски: 7, 1, 2;
в смесь 10 входят краски: 3, 8;)
Добавляем обе эти таблицы в модель данных (на вкладке данные). Потом задаем отношения (там же на вкладке данные): НомерКраски (из таблицы Смеси) - Код (из таблицы Цвета).
Затем строим сводную таблицу на основе модели данных. и добавляем из таблицы Смеси поле НазваниеСмеси в область Строки. Далее туда же в область Строки добавляем поле Краска из таблицы Цвета.
Ни и как Вы думаете что у нас получилось?! Наверно как и прежде под каждой строкой НазваниеСмеси будут перечислены только те Краски, которые в нее входят?! (Например в сводной таблице под словом "Смесь 1" будут перечислены только: Белая, Красная, Фуксия. ) Нет. Перечислены все краски для каждой смеси, как при полном объединении. при этом если поле Краска из таблицы Цвета перетащить в область Значения то Excel вообще говорит что "Могут потребоваться связи между таблицами" (отмечено красной стрелкой на рисунке), хотя как Вы помните связи мы уже создали. (см. изображения.)
Такое началось примерно 2-3 недели назад после очередных выходных (возможно какое-то обновление прилетело?! (от 03.10 или 12.10?))
Майкрософт меня всячески игнорит. Без этой фичи мы работать нормально не можем - ни один отчет не выгрузить в модель данных из БД.
Ссылка на тестовый файл:
Ссылка на скриншоты:
Спасибо за внимание!
Эта цепочка заблокирована. Вы можете просмотреть вопрос или оставить свой голос, если сведения окажутся полезными, но вы не можете написать ответ в этой цепочке.
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Было ли это обсуждение полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько вы удовлетворены этим обсуждением?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько вы удовлетворены этим обсуждением?
Благодарим за отзыв.
Ответы (36)
* Попробуйте выбрать меньший номер страницы.
* Введите только числа.
* Попробуйте выбрать меньший номер страницы.
* Введите только числа.
Пробуйте на домашнем устройстве выполнить откат на версию, у которой этой проблемы не было:
1. Отключить автообновление. (Word\Файл\Учетная запись):
2. В командной строке от имени администратора, выполните сначала команду:
cd %programfiles%\Common Files\Microsoft Shared\ClickToRun
officec2rclient.exe /update user updatetoversion=16.0.8431.2094
Проверьте и напишите результат.
P.S. Постарайтесь или самостоятельно найти ответ на Ваш вопрос, или задать ваш вопрос со страницы " Домашняя страница программ корпоративного лицензирования Microsoft ".
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
1 пользователь нашел этот ответ полезным
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Фэйл сразу же на втором пункте. Такой папки - ClickToRun на домашнем вообще нет. И если можно хотелось бы в первую очередь разобраться с рабочим - 2013 стандартный.
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Без анализа вашего проблемного файла, давать какие либо рекомендации не представляется правильным и возможным. Корпоративным пользователям, правильнее обращаться по телефону: 8 10 800 2548 1044.
Ждём от вас результат.
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Кстати все выполнено как в примере учебника Майкрософт: Пример
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
1. Где скриншот окна, которое должно быть при правильной работе?
2. Почему у вас на скриншотах стоит Цвет, а в вашем файле-примере Краска?
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
1. У меня нет такого скриншота да и откуда ему взяться если на всех компьютерах не работает так как должно.
2. Переписал текст, переделал скриншоты, добавил все ссылки.
3. Просто файл я создавал много раз с нуля на разных машинах вот и возникли разногласия в названии столбцов.
4. Вы можете открыть файл, перейти на вкладку Анализ, жамкнуть по сводной и нажать обновить? Если у Вас будет под каждой смесью только входящие в нее краски - значит ок - это какой-то мой косяк или моих программ и я буду разбираться с платной поддержкой, если же у Вас тоже останутся все 9 красок - значит проблема глобальна. Очень хочется услышать Ваш ответ)))))
P.S. именно этот файл это просто пример - пробовал создавать разные файлы, с разными данными, открывал старые файлы (кот. раньше работали) - результат один и тот же.
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Дополните, я правильно вас понял, что например для смеси № 1 используется краска 1, 6, 3?
Распишите по номерам, в какие смеси входит какая краска.
P.S. Если в каждую вашу смесь, входят все девять красок, то какой результат вы ожидаете получить?
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Без обид, но вы еще до сих пор не поняли сути вопроса что-ли? Или плохо знакомы с принципами работы модели данных?! Мы долго еще будем про картинки разговаривать? Это шутка такая?
ГЛАВНОЕ: " Дополните, я правильно вас понял, что например для смеси № 1 используется краска 1, 6, 3?
Распишите по номерам, в какие смеси входит какая краска."
ДА! Уважаемый Жук! Вы правильно поняли. В смесь 1 входят краски 1, 6, 3.
" P.S. Если в каждую вашу смесь, входят все девять красок, то какой результат вы ожидаете получить?" - там нет ни одной смеси в которую бы входили все 9 красок. Но если бы такая смесь была то для этой смеси были бы перечислены названия всех 9 красок. А вы какой результат хотите получить? Файлик загрузили? У Вас все отфильтровалось как надо? или Вы не знаете как надо? Смотрите тогда учебник Майкрософта - ссылку в другой теме я Вам дал. Там написано какой должен быть результат и как это делать. Если Вы просто не специалист по данной проблеме так просто скажите мол, чот я не понимаю что у вас тут не работает, и передайте просто проблему в техотдел Майкрософт. А то мы так неделю будем картинки правильно вставлять.
Читайте также: