有谁知道是否有可以让我最好将XLS转换为JSON的应用程序?
我还将为CSV转换程序做准备,因为如果周围什么都没有的话,我可能最终不得不写自己。
有谁知道是否有可以让我最好将XLS转换为JSON的应用程序?
我还将为CSV转换程序做准备,因为如果周围什么都没有的话,我可能最终不得不写自己。
Answers:
这对我来说效果很好,不需要上传文件:
由于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构建基本解决方案非常容易。我只是为客户写了一个,只花了几个小时就包括了研究工具。
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();
这对我有用,并在客户端运行:http : //www.convertcsv.com/csv-to-json.htm
现有的解决方案都无法正常工作,因此我很快就一起编写了一个脚本来完成这项工作。还将空字符串转换为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))
代替硬编码转换器,对Jackson(JSON处理器)的CSV支持如何:https : //github.com/FasterXML/jackson-dataformat-csv。因此,核心Jackson可以将POJSON,Maps JsonNode
等几乎任何内容读入JSON 。CSV支持也可以使用CSV来实现。结合两者,它是非常强大但简单的多种格式之间的转换器(已经有XML,YAML的后端,并且还添加了更多后端)。
可以在此处找到显示如何执行此操作的文章。
看看是否有帮助:返回CSV-将CSV文本转换为对象;通过JSON
这是2008年11月发布的博客,其中包含提供解决方案的C#代码。
从博客文章的介绍中:
由于Json比Xml更容易读写。因此,与Json相比,CSV(逗号分隔值)更易于读写。CSV还具有Excel等工具,可以轻松使用和创建。因此,如果您想为下一个应用程序创建配置文件或数据文件,请使用以下代码将CSV格式的JSON转换为POCO对象