แปลง CSV / XLS เป็น JSON หรือไม่ [ปิด]


142

ไม่มีใครรู้ว่ามีแอพพลิเคชั่นที่จะให้ฉันแปลง XLS เป็น JSON ได้หรือไม่?

ฉันจะชำระให้กับผู้แปลงจาก CSV เพราะนั่นคือสิ่งที่ฉันอาจจะต้องเขียนด้วยตัวเองหากไม่มีสิ่งใดอยู่รอบตัว


XLS มีโครงสร้างอย่างไร? คุณคิดว่าแถวแรกเป็นส่วนหัวของคอลัมน์หรือไม่?
SheetJS

CSVkit ทำเช่นนี้: csvkit.readthedocs.org/en/latest/scripts/csvjson.html
Amanda

CsvCruncher ใช้ CSV เป็นตาราง SQL และให้คุณเลือก, ส่งออกผลลัพธ์เป็น CSV หรือ JSON github.com/OndraZizka/csv-cruncher
Ondra Žižka

สามารถทำได้อย่างง่ายดายโดยใช้ดาต้าดาต้าแพนด้า อิมพอร์ต csv ของคุณไปยัง dataframe แพนด้าและแปลงเป็น json
R4444

1
ฉันขอแนะนำให้คุณดูData Transformer (ข้อจำกัดความรับผิดชอบ - ฉันเป็นผู้พัฒนา) มันจะแปลงระหว่าง CSV, JSON, XML และ YML ในเครื่อง มีการตั้งค่าการแปลงจำนวนมาก (พร้อมค่าเริ่มต้นที่ดี) เพื่อให้คุณสามารถปรับแต่งผลลัพธ์ตามวัตถุประสงค์ของคุณ คุณจะได้รับจากMac App Storeหรือร้านค้าไมโครซอฟท์
Geo Systems

คำตอบ:


77

สิ่งนี้ทำงานได้อย่างสมบูรณ์แบบสำหรับฉันและไม่ต้องการอัปโหลดไฟล์:

https://github.com/cparker15/csv-to-json?files=1


หากคุณต้องการแปลงเป็นข้อความคุณสามารถวางในรหัสของคุณใช้ตัวเลือก "Actionscript"
Steve O'Connor

น่าเสียดายที่เว็บไซต์นี้ลงไป
Mazen Kasser

3
ดูเหมือนว่าแหล่งที่มาอยู่ใน GIT: github.com/cparker15/csv-to-json?files=1
zmonteca

@zmonteca อัปเดตคำตอบพร้อมกับลิงก์ของคุณแล้ว
robertc

ขอบคุณมันใช้งานได้ คุณเพียงแค่ต้องอัปเดตการอ้างอิงของโครงการนี้มิฉะนั้นจะไม่สามารถทำงานได้
hd84335

196

คุณสามารถลองใช้เครื่องมือนี้ที่ฉันทำ:

Mr. Data Converter

มันแปลงเป็น JSON, XML และอื่น ๆ

มันคือฝั่งไคลเอ็นต์ทั้งหมดดังนั้นข้อมูลของคุณจึงไม่ออกจากคอมพิวเตอร์ของคุณ


ดูน่าสนใจแล้วกลับมาที่นี่อีกเมื่อฉันต้องการอีกครั้ง
mkoryak

6
ไม่เป็นไร แต่ระวังว่าไม่ได้หลีกเลี่ยงการพูดที่ถูกต้อง เมื่อ CSV ของคุณมีเครื่องหมายคำพูดคู่ผลลัพธ์จะไม่หนีออกมา คุณอาจต้องทำด้วยมือ เครื่องมือที่มีประโยชน์มากอย่างไรก็ตาม
barrycarton

เครื่องมือที่ยอดเยี่ยม! ทำได้ดีมาก @barrycarton ดูเหมือนว่านี่จะได้รับการแก้ไขหากคุณดึงรหัสล่าสุดจาก Github ดูเหมือนว่าลิงก์ที่อยู่ด้านบนนี้ล้าสมัยแล้ว
Bach

สวัสดี @Shan Carter ฉันต้องการให้ผู้ใช้เพียงแค่โหลดไฟล์ excel ไม่คัดลอกเนื้อหาของ excel เป็นไปได้ด้วยรหัสปัจจุบันหรือฉันควรแยกมัน (ถ้าเป็นไปได้ที่จะทำ) กรุณาแบ่งปันความคิดของคุณ
ราหุลกัตซัม

1
เครื่องมือที่ยอดเยี่ยม @Shan Carter ฉันใช้เสรีภาพในการแก้ไขบางสิ่งในที่นี่: thdoan.github.io/mr-data-converter
thdoan

38

เนื่องจาก Powershell 3.0 (มาพร้อมกับ Windows 8 พร้อมใช้งานสำหรับ Windows 7 และ windows Server 2008แต่ไม่ใช่ Windows Vista) คุณสามารถใช้ commandlet 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              

หน้าความช่วยเหลือออนไลน์เกี่ยวกับ Technet


7
เครดิตพิเศษ: บันทึก json เป็นไฟล์ ... $ topicjson | เพิ่มเนื้อหา -Path "mydata.json"
brady321

28

หากคุณไม่สามารถหาโซลูชันที่มีอยู่แล้วมันค่อนข้างง่ายที่จะสร้างโซลูชันพื้นฐานใน Java ฉันเพิ่งเขียนหนึ่งสำหรับลูกค้าและใช้เวลาเพียงสองสามชั่วโมงรวมถึงเครื่องมือในการค้นคว้า

Apache POI จะอ่านไบนารีของ 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();

หากมี excel เก็บไว้ที่ E: /exceloutput.xlsx สิ่งที่จะเป็นค่าในไฟล์และ inp ในสองบรรทัดแรก?
Kate

11

สิ่งนี้ใช้ได้สำหรับฉันและใช้งานฝั่งไคลเอ็นต์: http://www.convertcsv.com/csv-to-json.htm


1
ขอบคุณสำหรับคำแนะนำ :) ตัวแปลงใช้งานได้ดี
Nekto

1
อันนี้รวมถึงตัวคั่นแท็บดังนั้นคุณสามารถวางตรงจาก Excel
Arlen Beiler


6

ลองเครื่องมือฟรีขนาดเล็ก:

http://keyangxiang.com/csvtojson/

มันใช้โมดูล node.js csvtojson


มันไม่ได้มีชีวิตอยู่อีกแล้ว
gm2008

ลิงก์เป็นข้อมูลล่าสุด มันควรจะทำงาน
Keyang

มันอยู่ในGitHub นี่เป็นเครื่องมือที่ยืดหยุ่นที่สุด ฉันต้องการวิธีสร้างอาร์เรย์หรือวัตถุที่ซ้อนกันโดยใช้ CSV ( ตัวอย่าง )
Michael McGinnis

5

ไม่มีวิธีแก้ปัญหาใดที่ใช้งานได้ดังนั้นฉันจึงแฮคสคริปต์เข้าด้วยกันอย่างรวดเร็วเพื่อทำงาน นอกจากนี้ยังแปลงสตริงว่างเป็นโมฆะและและแยกแถวส่วนหัวสำหรับ 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))

เกี่ยวข้องกับjohntron.com/creations/csv-to-json
David

ไม่ยกเว้นว่ามีการใช้ไลบรารีเดียวกัน (csv, json) ฉันเขียนโค้ดตั้งแต่เริ่มต้น ลูปนั้นจำเป็นสำหรับการประมวลผลที่ฉันต้องการ (การแปลงชุดอักขระและแทนที่สตริงว่างด้วยโมฆะ)
Tronic

ฉันสงสัยเกี่ยวกับความขัดแย้งระหว่างความคิดเห็นมากมายที่พูดว่า "สิ่งนี้ได้ผลกับฉัน" และสิ่งนี้อ้างว่า
B. Clay Shannon

4

แทนที่จะแปลงยากรหัสวิธีการเกี่ยวกับการสนับสนุน CSV สำหรับแจ็คสัน (หน่วยประมวลผล JSON): https://github.com/FasterXML/jackson-dataformat-csv ดังนั้นแกนแจ็คสันสามารถอ่าน JSON ในรูปแบบ POJOs แผนที่JsonNodeเกือบทุกอย่าง และการสนับสนุน CSV สามารถทำเช่นเดียวกันกับ CSV รวมทั้งสองอย่างเข้าด้วยกันและมันเป็นเครื่องมือที่มีประสิทธิภาพมาก แต่ใช้งานง่ายระหว่างหลาย ๆ รูปแบบ (มีแบ็กเอนด์สำหรับ XML, YAML แล้วและถูกเพิ่มเข้ามามากขึ้น)

บทความที่แสดงให้เห็นว่าการทำเช่นนี้สามารถพบได้ที่นี่


3

ดูว่าช่วยได้หรือไม่: กลับไปเป็น CSV - แปลงข้อความ CSV เป็นวัตถุ ผ่าน JSON

นี่คือบล็อกโพสต์ที่เผยแพร่ในเดือนพฤศจิกายน 2008 ซึ่งรวมถึงรหัส C # เพื่อให้การแก้ปัญหา

จากคำแนะนำในบล็อกโพสต์:

ในฐานะที่เป็น Json ง่ายต่อการอ่านและเขียนแล้ว Xml มันตามมาว่า CSV (ค่าที่คั่นด้วยเครื่องหมายจุลภาค) นั้นง่ายต่อการอ่านและเขียนตามด้วย Json CSV ยังมีเครื่องมือต่าง ๆ เช่น Excel และอื่น ๆ ที่ทำให้ง่ายต่อการทำงานและสร้าง ดังนั้นหากคุณต้องการสร้างไฟล์กำหนดค่าหรือข้อมูลสำหรับแอปถัดไปของคุณนี่คือรหัสบางส่วนในการแปลง CSV เป็น JSON เป็นวัตถุ POCO


1
ขอบคุณ ป่วยต้องพอร์ตนี้เพื่อ Java แต่ดีขึ้นแล้วพยายามที่จะบูรณาการล้อ
mkoryak

ดีใจที่มันใช้งานได้ c # -> java เป็นการจับคู่ที่ดีทีเดียว
qxotk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.