2012-06-05 2 views
9

Я использую OPEN-OFFICE для работы и сохранения CSV. Я также использую разделитель запятой и «» ». Однако при сохранении CSV все номера не инкапсулируются. Как я могу заставить Open-Office обрабатывать числа как текст и их также инкапсулировать. Пример:Экспорт CSV должным образом открыт Office (сохранить номера как ТЕКСТ)

"store","website","attribute_set","type","sku","name","price","categories","description","qty","sizet","is_in_stock","status","visibility","tax_class_id" 
"admin","base","test","simple","T010013-012","Test12","12","test/test","Desc12",12,"S","1","Enabled","Catalog, Search","Taxable Goods" 
"admin","base","test","simple","T010013-013","Test13","13","test/test","Desc13",13,"M","1","Enabled","Catalog, Search","Taxable Goods" 
"admin","base","test","simple","T010013-014","Test14","14","test/test","Desc14",14,"L","1","Enabled","Catalog, Search","Taxable Goods" 
"admin","base","test","simple","T010013-015","Test15","15","test/test","Desc15",15,"XL","1","Enabled","Catalog, Search","Taxable Goods" 
"admin","base","test","simple","T010013-016","Test16","16","test/test","Desc16",16,"XXL","1","Enabled","Catalog, Search","Taxable Goods" 
"admin","base","test","configurable","T010013","TestParent","5","test/test","DescParent","30","","1","Enabled","Catalog, Search","Taxable Goods" 

Спасибо за вашу помощь PS:. Я использую MAGMI скрипт для Magento Выгрузка продуктов

+1

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

ответ

17

Это требует двух шагов:.

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

  2. Изменить параметры экспорта фильтров процитировать все текстовые ячейки:

edit filter settings

quote all text cells

С помощью этой установки, Calc должен сохранить этот лист:

sheet

следующим образом:

"bar","42" 
"foo","57" 

BTW, Calc полностью соответствует стандартам не цитировать каждое число по умолчанию. По крайней мере, RFC 4180 не требует указания каждого поля.

+0

Я делаю то же самое, но когда я открываю это с Notepad ++, все числа не цитируются. – user1023021

+0

Хм - вы убедились, что ячейки отформатированы как текст? Я предполагаю, что «Цитата всех текстовых ячеек» влияет только на правильность -форматированные клетки. Я тестировал это с помощью последнего LibreOffice 3.5.4.2 (Win 7), поэтому я уверен, что он работает. Но я снова буду тестировать Linux, возможно, вы попали в ошибку? – tohuwawohu

+0

@ user1023021: только что протестирован с использованием Ubuntu Linux - отлично работает и для меня там (опять же LibreOffice 3.5.4.2). Поэтому я уверен, что решение работает. – tohuwawohu

0

Написал небольшой скрипт ruby ​​для этого, пытаясь найти варианты в OpenOffice или Excel. Тем не менее их не найти.

require 'csv' 

rows = CSV.open(ARGV[0]).readlines 
CSV.open("#{ARGV[0].split('.')[0]}_qgisfriendly.csv", "w", {:force_quotes => true}) do |csv| 
    rows.each do |row| 
    csv << row 
    end 
end 
1

Существует несколько более простой способ устранить эту проблему, используя правильный синтаксис импорта SQL. Рассмотрим следующий пример:

LOAD DATA LOCAL INFILE '/yourfile.csv' 
INTO TABLE yourtable 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'; 

Необ ENCLOSED BY «"»линия должна решить эту проблему с помощью цифровых линий, без необходимости тратить время возиться с тем, как CSV отформатирован на экспорт из вторичного применения, как Open/LibreOffice.

 Смежные вопросы

  • Нет связанных вопросов^_^