12

У меня проблема с вставкой данных из таблицы результатов SQL Server 2005 в электронную таблицу Excel 2007.

У меня есть запрос в SQL Server, который возвращает 2 столбца (столбец числа и текстовый столбец)

На одном компьютере здесь я могу с радостью скопировать (щелкнуть правой кнопкой мыши> скопировать), а затем просто щелкнуть правой кнопкой мыши и вставить в таблицу Excel. нет проблем.

На другом компьютере, когда я пытаюсь вставить его в Excel, он разбивает текстовый столбец и вставляет текст в несколько столбцов на основе пробелов между словами.

Например, если одна из строк имеет ...

Приклей меня пожалуйста

... в нем при вставке в Excel он разбивает текст и вставляет каждое слово в отдельный столбец в Excel.

Мы попытались сравнить параметры как в SQL Server, так и в Excel с компьютером, на котором он работает, но не видим различий.

Любые идеи приветствуются

Спасибо

7 ответов7

15

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

6

Перед вставкой результатов: Данные → Текст в столбцы

  • Исходный тип данных: чек с разделителями
  • следующий
  • Разделители: снять пробел
  • следующий
  • Конец

Наконец, вставьте результаты.

1

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

По умолчанию файлы пользовательских шаблонов хранятся в следующем месте:

  • В Windows XP C:\Documents and Settings\\ Данные приложения \ Microsoft \ Шаблоны
  • В Windows Vista или в Windows 7 C:\ Users \\ AppData \ Roaming \ Microsoft \ Templates
1

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

Ответ Гектора хорош в том, что вам не нужно выходить из Excel, но это также работает, и довольно быстро и просто.

0

Если ваша таблица содержит поле nvarchar(max), переместите это поле в нижнюю часть таблицы. В случае, если тип поля отличается от nvarchar(max), затем определите поле или поля, которые нарушают работу, и используйте эту же технику. Сохрани это. Снова выберите таблицу в SQL. Если вы не можете сохранить без изменения, вы можете временно отключить соответствующие предупреждения в TOOLS | ОПЦИИ. Этот метод не несет риска. Скопируйте и вставьте отображение SQL GRID с заголовками в Excel. Данные могут по-прежнему отображать возврат каретки, но по крайней мере ваши данные находятся в одной строке. Затем выберите все записи строк и выполните пользовательскую сортировку в столбце идентификатора. Все ваши записи теперь должны быть целыми и последовательными.

0

Время от времени я сталкиваюсь с подобной ситуацией, когда строки разбиваются на несколько строк, когда пользователи используют символ возврата каретки / перевода строки в столбце, предназначенном для комментариев. Я нашел решение, которое работает для SQL 2012/2014 здесь.

Это, очевидно, не проблема в предыдущих версиях SQL Server. Если вы не хотите переходить по ссылке, вот как исправить проблему в вашем SQL:

REPLACE(REPLACE([YourColumnHere], CHAR(10), ''), CHAR(13), '')
0

Решение этой проблемы в Excel после вставки клика.

"Использовать мастер импорта текста" -> "С разделителями" -> "Далее". "Вкладка", флажок "Обрабатывать последовательный разделитель как один" -> Далее "Готово".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .