Остановить Excel от автоматического преобразования определенных текстовых значений в даты

excel csv import

465714 просмотра

30 ответа

Кто-нибудь знает, есть ли токен, который я могу добавить в свой csv для определенного поля, чтобы Excel не пытался преобразовать его в дату?

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

Источник Размещён: 11.11.2019 03:20

Ответы (30)


348 плюса

Решение

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

например. = "2008-10-03", = "больше текста"

РЕДАКТИРОВАТЬ (согласно другим постам) : из-за ошибки в Excel 2007, отмеченной Джеффкинсом, следует использовать решение, предложенное Эндрю :"=""2008-10-03"""

Автор: Jarod Elliott Размещён: 02.10.2008 11:33

143 плюса

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

Проблема заключается не только в датах в текстовых полях, но и в том, что числовые данные также преобразуются из текста в числа. Несколько примеров, где это проблематично:

  • Почтовые индексы
  • телефонные номера
  • правительственные идентификационные номера

который иногда может начинаться с одного или нескольких нулей (0), которые выбрасываются при преобразовании в числовое значение. Или значение содержит символы, которые можно спутать с математическими операторами (как в датах: /, -).

Два случая, о которых я могу думать, что решение «prepending =», как упоминалось ранее, может быть не идеальным ,

  • где файл может быть импортирован в программу, отличную от MS Excel (на ум приходит функция слияния MS Word),
  • где читабельность может быть важна.

Мой хак, чтобы обойти это

Если к значению предварительно / добавляется нецифровый и / или не датированный символ, значение будет распознано как текст и не будет преобразовано. Непечатный символ будет хорош, поскольку он не изменит отображаемое значение. Однако обычный старый пробел (\ s, ASCII 32) не работает для этого, так как он отсекается в Excel, а затем значение все равно преобразуется. Но есть различные другие печатные и непечатные символы, которые будут хорошо работать. Самый простой , однако это Append (добавить после) простой символ табуляции (\ т, ASCII 9).

Преимущества этого подхода:

  • Доступно с клавиатуры или с легко запоминающимся кодом ASCII (9),
  • Это не беспокоит импорт,
  • Обычно не беспокоит результаты слияния (в зависимости от макета шаблона - но обычно он просто добавляет широкий пробел в конце строки). (Если это, однако, проблема, посмотрите на другие символы, например пробел нулевой ширины (ZWSP, Unicode U + 200B)
  • не является большой помехой при просмотре CSV в блокноте (и т. д.),
  • и может быть удален путем поиска / замены в Excel (или Блокнот и т. д.).
  • Вам не нужно импортировать CSV, но можно просто дважды щелкнуть, чтобы открыть CSV в Excel.

Если есть причина, по которой вы не хотите использовать вкладку, найдите в таблице Unicode что-то еще подходящее.

Другой вариант

может быть для создания файлов XML, для которых определенный формат также принимается для импорта более новыми версиями MS Excel, и который позволяет намного больше параметров, подобных формату .XLS, но у меня нет опыта в этом.

Так что есть разные варианты. В зависимости от ваших требований / приложения одно может быть лучше другого.


прибавление

Нужно сказать, что более новые версии (Excel 2013+) MS Excel больше не открывают CSV в формате электронных таблиц - еще один быстрый удар в рабочем процессе, делающий Excel менее полезным ... По крайней мере, существуют инструкции для его обхода. Смотрите, например, этот Stackoverflow: Как правильно отображать файлы .csv в Excel 2013? ,

Автор: fr13d Размещён: 27.02.2013 08:16

100 плюса

Отрабатывая решение Джарода и проблему, поднятую Джеффкинсом, вы можете изменить

"May 16, 2011"

в

"=""May 16, 2011"""
Автор: Andrew Ferk Размещён: 16.05.2011 09:48

63 плюса

У меня была похожая проблема, и это обходной путь, который помог мне без необходимости редактировать содержимое файла CSV:

Если у вас есть возможность присвоить файлу имя, отличное от «.csv», вы можете назвать его с расширением «.txt», например «Myfile.txt» или «Myfile.csv.txt». Затем, когда вы откроете его в Excel (не перетаскивая, а используя File-> Open или список самых последних использованных файлов), Excel предоставит вам «Мастер импорта текста».

На первой странице мастера выберите «С разделителями» для типа файла.

На второй странице мастера выберите «,» в качестве разделителя, а также выберите классификатор текста, если вы заключили значения в кавычки

На третьей странице выберите каждый столбец отдельно и назначьте каждому тип «Текст» вместо «Общий», чтобы Excel не связывался с вашими данными.

Надеюсь, это поможет вам или кому-то с подобной проблемой!

Автор: rainerbit Размещён: 21.02.2013 05:06

27 плюса

ПРЕДУПРЕЖДЕНИЕ. В Excel '07 (по крайней мере) есть (еще одна) ошибка: если в содержимом поля есть запятая, она неправильно анализирует = "field, contents", а помещает все после запятой в Следующее поле, независимо от кавычек.

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

Это может означать, что есть некоторые поля, которые невозможно представить точно «правильно» в Excel, но сейчас я надеюсь, что никто не слишком удивлен.

Автор: Jeffiekins Размещён: 10.12.2010 07:58

20 плюса

При создании строки для записи в мой CSV-файл на C # мне пришлось отформатировать ее следующим образом:

"=\"" + myVariable + "\""
Автор: Colin Pear Размещён: 21.04.2014 01:09

15 плюса

В Excel 2010 откройте новый лист. На ленте данных нажмите «Получить внешние данные из текста». Выберите файл CSV и нажмите «Открыть». Нажмите кнопку "Далее". Снимите флажок «Tab», поставьте галочку рядом с «Comma», затем нажмите «Next». Нажмите в любом месте первого столбца. Удерживая клавишу Shift, перетащите ползунок до тех пор, пока вы не нажмете последний столбец, затем отпустите клавишу Shift. Нажмите кнопку «Текст», затем нажмите «Готово».

Все столбцы будут импортированы как текст, как они были в файле CSV.

Автор: Rob Stockley Размещён: 06.02.2014 09:15

12 плюса

Все еще проблема в выпуске Microsoft Office 2016, довольно тревожная для тех из нас, кто работает с именами генов, такими как MARC1, MARCH1, SEPT1 и т. Д. Решение, которое я нашел наиболее практичным после генерации файла ".csv" в R, затем он будет открыт / открыт для пользователей Excel:

  1. Откройте файл CSV как текст (блокнот)
  2. Скопируйте его (Ctrl + A, Ctrl + C).
  3. Вставьте его в новый лист Excel - он будет вставлен в один столбец как длинные текстовые строки.
  4. Выберите / выберите этот столбец.
  5. Зайдите в Данные- «Текст в столбцы ...», в открывшемся окне выберите «Разграничить» (далее). Убедитесь, что «запятая» помечена (пометка, что она уже показывает разделение данных на столбцы ниже) (далее), в этом окне вы можете выбрать нужный столбец и пометить его как текст (вместо общего) (Готово).

НТН

Автор: Ana Maria Mendes-Pereira Размещён: 30.11.2015 05:35

11 плюса

2018

Единственное правильное решение, которое сработало для меня (а также без изменения CSV ).

Excel 2010:

  1. Создать новую рабочую книгу
  2. Данные> Из текста> Выберите файл CSV
  3. Во всплывающем окне выберите переключатель «Разграничить», затем нажмите «Далее>»
  4. Флажки разделителей: отметьте только «Запятая» и снимите флажки с других параметров, затем нажмите «Далее>»
  5. В «Предварительном просмотре данных» перейдите в крайнее правое положение, затем удерживайте Shift и щелкните по последнему столбцу (это выберет все столбцы). Теперь в «Формате данных столбца» выберите переключатель «Текст», затем нажмите «Готово».

Excel office365: (версия клиента)

  1. Создать новую рабочую книгу
  2. Данные> Из текста / CSV> Выберите файл CSV
  3. Обнаружение типа данных> не обнаруживать

Примечание: Excel Office365 (веб-версия), поскольку я пишу это, вы не сможете это сделать.

Автор: evilReiko Размещён: 12.08.2018 07:59

10 плюса

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

Добавить пробел ко всем значениям в CSV

Это пространство будет удалено из чисел, таких как «1», «2.3» и «-2.9e4», но останется в датах, таких как «01/10/1993», и в логических значениях, таких как «TRUE», останавливая их преобразование в внутренние типы данных Excel.

Он также предотвращает защелкивание двойных кавычек при чтении, поэтому надежный способ создания текста в CSV-файле остается неизменным в Excel. ДАЖЕ, если какой-то текст наподобие «3.1415», заключает его в двойные кавычки И ставит перед пробелом всю строку, то есть (используя одинарные кавычки, чтобы показать, что вы вводите) '"3.1415"'. Тогда в Excel у вас всегда будет исходная строка, за исключением того, что она заключена в двойные кавычки и начинается с пробела, поэтому вам нужно учитывать их в любых формулах и т. Д.

Автор: Dan Размещён: 28.01.2013 06:05

8 плюса

(Предполагая Excel 2003 ...)

При использовании мастера преобразования текста в столбцы на шаге 3 вы можете указать тип данных для каждого из столбцов. Нажмите на столбец в окне предварительного просмотра и измените неправильный столбец с «Общие» на «Текст».

Автор: DocMax Размещён: 02.10.2008 11:34

8 плюса

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

Измените расширение файла .csv на .txt; это остановит Excel от автоматического преобразования файла при его открытии. Вот как я это делаю: откройте Excel на пустой лист, закройте пустой лист, затем File => Open и выберите файл с расширением .txt. Это заставит Excel открыть «Мастер импорта текста», где он задаст вам вопросы о том, как вы хотите, чтобы он интерпретировал файл. Сначала вы выбираете разделитель (запятая, табуляция и т. Д.), Затем (вот важная часть) вы выбираете набор столбцов столбцов и выбираете форматирование. Если вы хотите именно то, что находится в файле, выберите «Текст», и Excel отобразит только то, что находится между разделителями.

Автор: Chris Размещён: 27.08.2013 03:08

4 плюса

(EXCEL 2007 и позже)

Как заставить Excel не «определять» форматы даты без редактирования исходного файла

Или:

  • переименовать файл как .txt
  • Если вы не можете этого сделать, вместо открытия CSV-файла непосредственно в Excel создайте новую рабочую книгу, затем перейдите
    Data > Get external data > From Text
    и выберите свой CSV.

В любом случае вам будут предложены параметры импорта, просто выберите каждый столбец, содержащий даты, и скажите Excel, чтобы форматировать как «текст», а не «общий».

Автор: Some_Guy Размещён: 17.09.2015 09:39

4 плюса

Ни одно из предложенных здесь решений не является хорошим решением. Это может работать для отдельных случаев, но только если вы контролируете окончательное отображение. Возьмите мой пример: моя работа составляет список продуктов, которые они продают в розницу. Это в формате CSV и содержит коды деталей, некоторые из них начинаются с нуля, установленных производителями (не под нашим контролем). Уберите начальные нули, и вы действительно сможете найти другой продукт. Розничные клиенты хотят получить список в формате CSV из-за внутренних программ обработки, которые также находятся вне нашего контроля и отличаются для каждого клиента, поэтому мы не можем изменить формат файлов CSV. Нет префикса «=», нет добавленных вкладок. Данные в сырых файлах CSV верны; когда клиенты открывают эти файлы в Excel, начинаются проблемы. И многие клиенты не очень разбираются в компьютерах. Они могут просто открыть и сохранить вложение электронной почты. Мы думаем о предоставлении данных в двух немного разных форматах: один как Excel Friendly (используя предложенные выше варианты, добавив TAB, другой как «master»). Но это может быть желательным, так как некоторые клиенты не поймут, почему мы должны сделать это. Тем временем мы продолжаем объяснять, почему они иногда видят «неправильные» данные в своих электронных таблицах. Пока Microsoft не внесет надлежащие изменения, я не вижу надлежащего решения этого вопроса, пока никто не контролирует то, как конечные пользователи использовать файлы. Но это может быть желаемое за действительное, так как некоторые клиенты не поймут, почему мы должны это делать. Тем временем мы продолжаем объяснять, почему они иногда видят «неправильные» данные в своих таблицах. До тех пор, пока Microsoft не внесет надлежащие изменения, я не вижу правильного решения, пока кто-то не контролирует, как конечные пользователи используют файлы. Но это может быть желаемое за действительное, так как некоторые клиенты не поймут, почему мы должны это делать. Тем временем мы продолжаем объяснять, почему они иногда видят «неправильные» данные в своих таблицах. До тех пор, пока Microsoft не внесет надлежащие изменения, я не вижу правильного решения, пока кто-то не контролирует, как конечные пользователи используют файлы.

Автор: mljm Размещён: 30.11.2017 10:59

3 плюса

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

Пример 1: = ("012345678905") отображается как 012345678905

Пример 2: = ("1954-12-12") отображается как 1954-12-12 , а не 12.12.1954 .

Автор: GW4 Размещён: 13.06.2013 12:34

3 плюса

То, что я сделал для этой же проблемы, было добавить следующее перед каждым значением CSV: "=" "" и одну двойную кавычку после каждого значения CSV, прежде чем открывать файл в Excel. Возьмите следующие значения, например:

012345,00198475

Они должны быть изменены перед открытием в Excel, чтобы:

"="""012345","="""00198475"

После этого каждое значение ячейки отображается в виде формулы в Excel и поэтому не будет отформатировано как число, дата и т. Д. Например, значение 012345 выглядит как:

="012345"
Автор: ChrisB Размещён: 08.12.2015 01:12

2 плюса

Это не Excel. Windows распознает формулу, данные как дату и автокорректирует. Вы должны изменить настройки Windows.

«Панель управления» (-> «Переключиться на классический вид») -> «Региональные и языковые параметры» -> вкладка «Региональные параметры» -> «Настроить ...» -> вкладка «Числа» -> А затем изменить символы в соответствии с тем, что вы хотите.

http://www.pcreview.co.uk/forums/enable-disable-auto-convert-number-date-t3791902.html

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

Автор: syandras Размещён: 08.05.2014 11:51

2 плюса

Привет у меня та же проблема,

Я пишу этот vbscipt для создания другого файла CSV. Новый CSV-файл будет содержать шрифт в каждом поле, поэтому Excel будет понимать его как текст.

Таким образом, вы создаете файл .vbs с кодом ниже (например, Modify_CSV.vbs), сохраняете и закрываете его. Перетащите исходный файл в файл VBScript. Он создаст новый файл с «SPACE_ADDED» для имени файла в том же месте.

Set objArgs = WScript.Arguments

Set objFso = createobject("scripting.filesystemobject")

dim objTextFile
dim arrStr ' an array to hold the text content
dim sLine  ' holding text to write to new file

'Looping through all dropped file
For t = 0 to objArgs.Count - 1
    ' Input Path
    inPath = objFso.GetFile(wscript.arguments.item(t))

    ' OutPut Path
    outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")

    ' Read the file
    set objTextFile = objFso.OpenTextFile(inPath)


    'Now Creating the file can overwrite exiting file
    set aNewFile = objFso.CreateTextFile(outPath, True) 
    aNewFile.Close  

    'Open the file to appending data
    set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending

    ' Reading data and writing it to new file
    Do while NOT objTextFile.AtEndOfStream
        arrStr = split(objTextFile.ReadLine,",")

        sLine = ""  'Clear previous data

        For i=lbound(arrStr) to ubound(arrStr)
            sLine = sLine + " " + arrStr(i) + ","
        Next

        'Writing data to new file
        aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop


    Loop

    'Closing new file
    aNewFile.Close  

Next ' This is for next file

set aNewFile=nothing
set objFso = nothing
set objArgs = nothing
Автор: Harry Duong Размещён: 20.02.2014 06:37

2 плюса

Без изменения вашего CSV-файла вы можете:

  1. Измените параметр «Формат ячеек Excel» на «текст»
  2. Затем с помощью «мастера импорта текста», чтобы определить ячейки CSV.
  3. После импорта удалите эти данные
  4. затем просто вставьте как обычный текст

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

Что-то вроде глупой работы, но это лучше, чем модифицировать данные CSV перед импортом. Энди Бэйрд и Ричард вроде как ускользнули от этого метода, но пропустили пару важных шагов.

Автор: cliffclof Размещён: 30.03.2015 07:00

1 плюс

Я знаю, что это старая тема. Для тех, кто, как я, у которых все еще есть эта проблема при использовании Office 2013 через PowerSuff-объект com, можно использовать метод opentext . Проблема в том, что этот метод имеет много аргументов, которые иногда взаимоисключающие. Чтобы решить эту проблему, вы можете использовать метод invoke-namedparameter, представленный в этом посте . Примером будет

$ex = New-Object -com "Excel.Application"
$ex.visible = $true
$csv = "path\to\your\csv.csv"
Invoke-NamedParameter ($ex.workbooks) "opentext" @{"filename"=$csv; "Semicolon"= $true}

К сожалению, я только что обнаружил, что этот метод каким-то образом прерывает синтаксический анализ CSV, когда ячейки содержат разрывы строк. Это поддерживается csv, но реализация microsofts кажется ошибочной. Также он как-то не обнаружил специфических немецких символов. Придание ему правильной культуры не изменило этого поведения. Все файлы (csv и script) сохраняются в кодировке utf8. Сначала я написал следующий код для вставки CSV ячейка за ячейкой.

$ex = New-Object -com "Excel.Application"
$ex.visible = $true;
$csv = "path\to\your\csv.csv";
$ex.workbooks.add();
$ex.activeWorkbook.activeSheet.Cells.NumberFormat = "@";
$data = import-csv $csv -encoding utf8 -delimiter ";"; 
$row = 1; 
$data | %{ $obj = $_; $col = 1; $_.psobject.properties.Name |%{if($row -eq1){$ex.ActiveWorkbook.activeSheet.Cells.item($row,$col).Value2= $_ };$ex.ActiveWorkbook.activeSheet.Cells.item($row+1,$col).Value2 =$obj.$_; $col++ }; $row++;}

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

function csvToExcel($csv,$delimiter){
     $a = New-Object -com "Excel.Application"
     $a.visible = $true

    $a.workbooks.add()
     $a.activeWorkbook.activeSheet.Cells.NumberFormat = "@"
     $data = import-csv -delimiter $delimiter $csv; 
     $array = ($data |ConvertTo-MultiArray).Value
     $starta = [int][char]'a' - 1
     if ($array.GetLength(1) -gt 26) {
         $col = [char]([int][math]::Floor($array.GetLength(1)/26) + $starta) + [char](($array.GetLength(1)%26) + $Starta)
     } else {
         $col = [char]($array.GetLength(1) + $starta)
     }
     $range = $a.activeWorkbook.activeSheet.Range("a1:"+$col+""+$array.GetLength(0))
     $range.value2 = $array;
     $range.Columns.AutoFit();
     $range.Rows.AutoFit();
     $range.Cells.HorizontalAlignment = -4131
     $range.Cells.VerticalAlignment = -4160
}

 function ConvertTo-MultiArray {
     param(
         [Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true)]
         [PSObject[]]$InputObject
     )
     BEGIN {
         $objects = @()
         [ref]$array = [ref]$null
     }
     Process {
         $objects += $InputObject
     }
     END {
         $properties = $objects[0].psobject.properties |%{$_.name}
         $array.Value = New-Object 'object[,]' ($objects.Count+1),$properties.count
         # i = row and j = column
         $j = 0
         $properties |%{
             $array.Value[0,$j] = $_.tostring()
             $j++
         }
         $i = 1
         $objects |% {
             $item = $_
             $j = 0
             $properties | % {
                 if ($item.($_) -eq $null) {
                     $array.value[$i,$j] = ""
                 }
                 else {
                     $array.value[$i,$j] = $item.($_).tostring()
                 }
                 $j++
             }
             $i++
         }
         $array
     } 
} 
csvToExcel "storage_stats.csv" ";"

Вы можете использовать приведенный выше код, так как он должен конвертировать любые CSV-файлы в Excel. Просто измените путь к CSV и символу разделителя внизу.

Автор: flatbeat Размещён: 17.04.2015 08:19

1 плюс

В моем случае «Sept8» в CSV-файле, созданном с использованием R, был преобразован в «8-Sept» в Excel 2013. Проблема была решена с помощью функции write.xlsx2 () в пакете xlsx для генерации выходного файла в формате xlsx , который может быть загружен в Excel без нежелательного преобразования. Итак, если вам дан файл csv, вы можете попробовать загрузить его в R и преобразовать его в xlsx, используя функцию write.xlsx2 ().

Автор: Dinghai Zheng Размещён: 29.02.2016 02:43

1 плюс

Обходной путь с помощью Google Drive (или Numbers, если вы на Mac):

  1. Откройте данные в Excel
  2. Установите формат столбца с неверными данными в Текст (Формат> Ячейки> Число> Текст)
  3. Загрузите файл .csv в Google Диск и откройте его с помощью Google Sheets
  4. Скопируйте оскорбительный столбец
  5. Вставить столбец в Excel как текст («Правка»> «Специальная вставка»> «Текст»)

Кроме того, если вы находитесь на Mac для шага 3, вы можете открыть данные в Numbers.

Автор: Derek Hill Размещён: 19.12.2017 10:00

1 плюс

(EXCEL 2016 и позже, на самом деле я не пробовал в старых версиях)

  1. Открыть новую пустую страницу
  2. Перейти на вкладку «Данные»
  3. Нажмите «Из текста / CSV» и выберите свой CSV-файл
  4. Проверьте в предварительном просмотре, правильны ли ваши данные.
  5. В случае, когда какой-либо столбец конвертируется в дату, нажмите «изменить», а затем выберите тип текста, нажав на календарь в заголовке столбца.
  6. Нажмите «Закрыть и загрузить»
Автор: Roman Yakoviv Размещён: 27.06.2018 09:45

0 плюса

Хорошо, я нашел простой способ сделать это в Excel 2003 - 2007. Откройте пустую книгу xls. Затем перейдите в меню «Данные», импортируйте внешние данные. Выберите ваш CSV-файл. Пройдите через мастера, а затем в «формате данных столбца» выберите любой столбец, который необходимо принудительно «текст». Это приведет к тому, что весь столбец будет импортирован как текстовый формат, что помешает Excel попытаться обработать любые конкретные ячейки как дату.

Автор: Richard Размещён: 06.05.2014 01:14

0 плюса

Эта проблема все еще присутствует в Mac Office 2011 и Office 2013, я не могу предотвратить это. Это кажется такой простой вещью.

В моем случае у меня были значения, такие как "1 - 2" и "7 - 12" в CSV, правильно заключенные в кавычки, это автоматически преобразует дату в Excel, если вы попытаетесь впоследствии преобразовать ее в простой текст, который вы получите числовое представление даты, например 43768. Кроме того, оно переформатирует большие числа, найденные в штрих-кодах и числах EAN, в числа 123E +, которые не могут быть преобразованы обратно.

Я обнаружил, что Google Диски Google Диска не конвертируют числа в даты. Штрих-коды содержат запятые каждые 3 символа, но они легко удаляются. Он очень хорошо справляется с CSV, особенно когда имеешь дело с CSV для MAC / Windows.

Может спасти кого-нибудь когда-нибудь.

Автор: EricNo7 Размещён: 21.05.2015 10:45

0 плюса

ПРОСТОЕ РЕШЕНИЕ Я только что понял это сегодня.

  • Открыть в Word
  • Заменить все дефисы с дефисом
  • Сохранить и закрыть
  • Открыть в Excel

Как только вы закончите редактирование, вы всегда можете снова открыть его в Word, чтобы снова заменить дефисы на дефисы.

Автор: Randy Hoffman Размещён: 12.08.2015 03:10

0 плюса

Я делаю это для номеров кредитных карт, которые постоянно преобразуются в научную нотацию: в итоге я импортирую свой .csv в Google Sheets. Параметры импорта теперь позволяют отключить автоматическое форматирование числовых значений. Я установил для любых чувствительных столбцов обычный текст и загрузил как xlsx.

Это ужасный рабочий процесс, но по крайней мере мои ценности остались такими, какими они должны быть.

Автор: Brendonwbrown Размещён: 16.08.2016 08:09

0 плюса

Я сделал этот макрос VBA, который в основном форматирует диапазон вывода в виде текста перед вставкой чисел. Прекрасно работает для меня, когда я хочу вставить такие значения, как 8/11, 23/6, 1/3 и т. Д. Без Excel, интерпретируя их как даты.

Sub PasteAsText()
' Created by Lars-Erik Sørbotten, 2017-09-17
Call CreateSheetBackup

Columns(ActiveCell.Column).NumberFormat = "@"

Dim DataObj As MSForms.DataObject
Set DataObj = New MSForms.DataObject
DataObj.GetFromClipboard

ActiveCell.PasteSpecial

End Sub

Мне очень интересно знать, работает ли это и на других людей. Некоторое время я искал решение этой проблемы, но я не видел быстрого решения vba, в котором раньше не было вставки перед входным текстом. Этот код сохраняет данные в первоначальном виде.

Автор: LarsS Размещён: 17.09.2017 04:04

-1 плюса

Если вы поставите кавычку в начале поля, она будет интерпретирована как текст.

Пример: 25/12/2008становится'25/12/2008

Вы также можете выбрать тип поля при импорте.

Автор: Harley Holcombe Размещён: 02.10.2008 11:33

-1 плюса

Альтернативный метод:

Преобразуйте формат столбца, который вы хотите изменить, в «Текст». Выберите все ячейки, которые вы хотите сохранить, скопируйте. Не отменяя выбор этих столбцов, нажмите «Редактировать> Специальная вставка> Как значения»

Сохранить как CSV. Обратите внимание, что это должно быть последним, что вы делаете с файлом, так как при повторном открытии он будет форматироваться как даты, поскольку форматы ячеек не могут быть сохранены в файлах CSV.

Автор: Andy Baird Размещён: 02.10.2008 11:43
Вопросы из категории :
32x32