1

У меня есть некоторые данные в базе данных, которая использует идентификаторы в виде 16-значных чисел. В некоторых ситуациях мне нужно экспортировать данные таким образом, чтобы ими можно было манипулировать в Excel.

Поэтому я экспортирую данные в файл и импортирую их в Excel.

Я пробовал несколько форматов файлов, и я застрял.

Проблема, с которой я сталкиваюсь, заключается в том, что при чтении файла в Excel, в котором есть ячейка, похожая на число, Excel обрабатывает его как число.

Подвох в том, что (насколько я могу судить) все числовые значения в Excel являются числами с плавающей запятой двойной точности, которые имеют точность менее 16 цифр. Так что мои идентификаторы изменены: очень часто последняя цифра меняется на 0.

До сих пор я смог убедить Excel сохранить Id без изменений, разбив его сам: добавив букву или символ к Id. Это, однако, означает, что для повторного использования значения оно должно быть "непрерывным".

Есть ли способ создать файл, где я могу указать, что Excel должен обрабатывать значение как текст без изменения значения? Или есть способ позволить Excel обрабатывать значение как длинное (64-битное целое)?

4 ответа4

3

Вы можете поместить число в кавычки и добавить перед ним знак равенства, например: ="001145" (это, конечно, в CSV)

1

Стандартный способ заставить что-то, похожее на число, обрабатывать как текст, - поместить перед ним одну кавычку, известную как апостроф (').

1

В дополнение к тому, что я классифицировал как кредитный ответ, я также обнаружил, что в LibreOffice я могу экспортировать лист в том, что они называют "Excel 2003 xml". Этот формат представляет собой XML, который выглядит довольно легко для создания себя и имеет такие определения для ячейки на листе:

<Cell>
  <Data ss:Type="String">12345678901234567890</Data>
</Cell>
<Cell>
  <Data ss:Type="Number">1.23456789012346E+019</Data>
</Cell>

Когда я просто даю такое xml расширение xlsx, мой LibreOffice открывает его безо всяких вопросов.

1

Вы можете заставить Excel импортировать это как текст из .csv. Как только вы создали файл .csv, то

  1. Выберите Data > From Text
  2. В мастере импорта текста, шаг 1, выберите с Delimited
  3. В мастере импорта текста, шаг 2, выберите Comma
  4. В мастере импорта текста, шаг 3, выберите столбец с длинным идентификатором и выберите Text data format .
  5. Тогда закончите.

Excel с самого начала будет обрабатывать столбец с длинным идентификатором как текст, а не пытаться преобразовать его в число, а затем обратно в текст, что приведет к потере данных.

Вот пример того, как одна и та же строка данных импортируется и форматируется тремя различными способами из .csv:

long_id

Обратите внимание, что если вы попытаетесь открыть файл .csv напрямую (что с удовольствием сделает для вас Excel), вы уже будете в состоянии присвоить столбцам значение типа данных - Excel сделает это (ошибочно) для тебя.

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