остановить автоматическое форматирование числовых строк в Excel в виде чисел

Я экспортирую отчет из MS Access (2003) в Excel (97-2003).

Один из столбцов имеет символьную строку, которая является числовой для некоторых строк, например. «05-0880».

Когда я открываю выходной файл в MS Excel, в соответствующей ячейке устанавливается число -372424.

Я предполагаю, что это вызвано тем, что Excel «умен» и решил, что «05-0808» представляет какое-то значение времени или дату, и преобразовал строку в соответствующее числовое значение.

В моем случае данные представляют собой коды продуктов, и такое преобразование очень нежелательно. Если я экспортирую вывод базового запроса отчета (экспорт таблицы данных), этого преобразования не произойдет. (Предполагается, что для Access должна быть предусмотрена возможность вывода в формат Excel таким образом, чтобы предотвратить преобразование).

Я попытался изменить атрибут формата поля в отчете, но там нет опции «Текст», а «Стандартный» ведет себя так же, как если бы оставил поле пустым.

Есть ли способ использовать функцию format () для принудительного вывода строки? Если да, то поможет ли это, когда Excel все еще сможет выполнять свое умное преобразование?

Просто использовать базовый запрос в качестве вывода - вариант, но не идеальный, потому что форматирование и группировка теряются. Экспорт отчета в текстовый формат - это катастрофа, потому что столбцы не разделены.


person Loopo    schedule 12.11.2008    source источник


Ответы (3)


На самом деле, это скорее наоборот. MS Access слишком глуп, чтобы правильно экспортировать его из отчета. Вы можете снабдить данные кавычками или апострофами; однако, как вы знаете, это довольно некрасиво и требует постобработки.

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

person BIBD    schedule 12.11.2008
comment
Экспорт в Excel из отчета не имеет особого смысла, за исключением очень небольшого количества специализированных ситуаций (за более чем 12 лет профессионального программирования Access я делал это, может быть, дважды). - person David-W-Fenton; 14.11.2008

Экспортируйте "05-0880" вместо "05-0880".

person TcKs    schedule 12.11.2008
comment
Во-вторых, что. Добавьте апостроф (') в начало строки. - person Leonardo Herrera; 12.11.2008
comment
Как вы экспортируете файл Excel? - person TcKs; 12.11.2008
comment
Я попытался поставить апостроф перед кодом / номером, изменив источник управления текстового поля в отчете на = '& [myfield], но это привело к выводу '05 -0880 в Excel, что не идеально, так как я хочу чтобы избежать постобработки выходного файла - person Loopo; 12.11.2008
comment
@TcKs Я использую DoCmd.OutputTo acOutputReport, ‹reportName› - person Loopo; 12.11.2008
comment
Апостроф в начале - одна из распространенных уловок в Excel. Инструменты должны продолжить это. Следующий способ - после экспорта открыть файл в Excel программно и явно задать формат столбца. - person TcKs; 12.11.2008

убедитесь, что вы используете одинарную кавычку, а не другой апостроф.

person Aaron Tsur    schedule 28.01.2014