Хто-небудь знає, чи є програма, яка дозволить мені перетворити XLS переважно в JSON?
Я також погоджуся на конвертер з CSV, тому що я, мабуть, в кінцевому підсумку повинен сам написати, якщо навколо нічого немає.
Хто-небудь знає, чи є програма, яка дозволить мені перетворити XLS переважно в JSON?
Я також погоджуся на конвертер з CSV, тому що я, мабуть, в кінцевому підсумку повинен сам написати, якщо навколо нічого немає.
Відповіді:
Це прекрасно працювало для мене і НЕ вимагає завантаження файлу:
Ви можете спробувати цей інструмент, який я зробив:
Він перетворюється на JSON, XML та інші.
Це теж клієнтська сторона, тому ваші дані ніколи не залишають ваш комп'ютер.
Оскільки Powershell 3.0 (поставляється з Windows 8, доступний для Windows 7 та Windows Server 2008, але не Windows Vista), ви можете використовувати вбудовану командну команду convertto-json:
PS E:> $topicsjson = import-csv .\itinerary-all.csv | ConvertTo-Json
PS E:\> $topicsjson.Length
11909
PS E:\> $topicsjson.getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Якщо ви не можете знайти існуюче рішення, побудувати базове в Java досить просто. Я тільки що написав для клієнта, і це займало лише пару годин, включаючи інструменти для дослідження.
POI Apache прочитає двійковий файл Excel. http://poi.apache.org/
JSONObject побудує JSON
Після цього лише питання про перегляд рядків у даних Excel та побудову структури JSON. Ось кілька псевдокодів для основного використання.
FileInputStream inp = new FileInputStream( file );
Workbook workbook = WorkbookFactory.create( inp );
// Get the first Sheet.
Sheet sheet = workbook.getSheetAt( 0 );
// Start constructing JSON.
JSONObject json = new JSONObject();
// Iterate through the rows.
JSONArray rows = new JSONArray();
for ( Iterator<Row> rowsIT = sheet.rowIterator(); rowsIT.hasNext(); )
{
Row row = rowsIT.next();
JSONObject jRow = new JSONObject();
// Iterate through the cells.
JSONArray cells = new JSONArray();
for ( Iterator<Cell> cellsIT = row.cellIterator(); cellsIT.hasNext(); )
{
Cell cell = cellsIT.next();
cells.put( cell.getStringCellValue() );
}
jRow.put( "cell", cells );
rows.put( jRow );
}
// Create the JSON.
json.put( "rows", rows );
// Get the JSON text.
return json.toString();
Це працює для мене і працює на стороні клієнта: http://www.convertcsv.com/csv-to-json.htm
Я щойно знайшов це:
http://tamlyn.org/tools/csv2json/
(Примітка. Ваш файл csv повинен бути доступний через веб-адресу)
Спробуйте мініатюрний безкоштовний інструмент:
http://keyangxiang.com/csvtojson/
Він використовує node.js csvtojson модуль
Жодне з існуючих рішень не працювало, тому я швидко зламав сценарій, який би зробив цю роботу. Також перетворює порожні рядки в нулі та відокремлює рядок заголовка для JSON. Може знадобитися налаштування залежно від діалекту та діаграми CSV, які ви маєте.
#!/usr/bin/python
import csv, json
csvreader = csv.reader(open('data.csv', 'rb'), delimiter='\t', quotechar='"')
data = []
for row in csvreader:
r = []
for field in row:
if field == '': field = None
else: field = unicode(field, 'ISO-8859-1')
r.append(field)
data.append(r)
jsonStruct = {
'header': data[0],
'data': data[1:]
}
open('data.json', 'wb').write(json.dumps(jsonStruct))
Замість жорстко кодованих перетворювачів, як щодо підтримки CSV для Джексона (процесор JSON): https://github.com/FasterXML/jackson-dataformat-csv . Таким чином, Джексон може читати JSON як POJO, Maps JsonNode
, майже все. І підтримка CSV може зробити те ж саме з CSV. Поєднайте два, і це дуже потужний, але простий перетворювач між декількома форматами (вже є допоміжні файли для XML, YAML та багато іншого).
Статтю, яка показує, як це зробити, можна знайти тут .
Перевірте, чи це допомагає: Назад до CSV - Перетворення CSV-тексту в об’єкти; через JSON
Це повідомлення в блозі, опублікована в листопаді 2008 року, яка включає код C # для надання рішення.
Із вступу до повідомлення в блозі:
Оскільки Json легше читати і писати, то Xml. Звідси випливає, що CSV (значення, відокремлені комами) легше читати і записувати тоді Json. CSV також має такі інструменти, як Excel та інші, які полегшують роботу та створення. Отож, якщо ви хочете коли-небудь створити файл конфігурації чи даних для наступного додатка, ось код для перетворення CSV з JSON в об'єкти POCO