有没有应用程序可以让我把XLS转成JSON?如果没有,我可能只能写一个转换CSV的转换器了。
有没有应用程序可以让我把XLS转成JSON?如果没有,我可能只能写一个转换CSV的转换器了。
自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
(import-csv .\in.csv | ConvertTo-Json) > out.json
:) - QamarFileInputStream 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();
现有的解决方案都无法使用,因此我迅速编写了一个脚本来完成这项工作。它还将空字符串转换为null,并将标题行分离为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))
JsonNode
,几乎任何内容。 CSV支持也可以对CSV执行相同的操作。 结合使用时,这是多种格式之间非常强大但简单的转换器(已经有XML,YAML的后端,并正在添加更多)。可在这里找到说明如何使用的文章。