excel 转json
时间: 2025-07-14 19:42:47 浏览: 15
### 将Excel文件转换为JSON格式的方法
将Excel文件转换为JSON格式可以通过多种编程语言实现,以下是使用Python和Java两种常见方法的详细说明。
#### 方法一:使用Python进行转换
在Python中,可以借助`xlrd`库读取Excel文件内容,并通过`json`库将其转换为JSON格式。以下是一个完整的代码示例[^2]:
```python
import xlrd
import json
def read_xlsx_file(filename):
# 打开Excel文件
data = xlrd.open_workbook(filename)
# 读取第一个工作表
table = data.sheets()[0]
# 统计行数
rows = table.nrows
data_list = []
# 存放数据
for i in range(1, rows):
values = table.row_values(i)
data_list.append({
"code": str(int(values[0])),
"name": values[1],
})
return data_list
if __name__ == '__main__':
d1 = read_xlsx_file("111.xlsx") # 读取Excel文件
# 转换为JSON格式
js = json.dumps(d1, sort_keys=True, ensure_ascii=False, indent=4, separators=(',', ':'))
print(js)
# 写入JSON文件
with open("./text3.json", "w+", encoding='utf-8') as jsFile:
jsFile.write(js)
```
此代码首先读取Excel文件中的数据,然后将其转换为Python字典列表,最后将字典列表序列化为JSON格式并保存到文件中。
#### 方法二:使用Java进行转换
在Java中,可以使用Apache POI库来读取Excel文件,并结合`json-lib`库将数据转换为JSON格式。以下是具体实现步骤[^3][^5]:
1. **添加依赖**
在项目的`pom.xml`文件中添加以下依赖项:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<classifier>jdk15</classifier>
<version>2.2.3</version>
</dependency>
```
2. **编写转换代码**
以下是一个完整的Java代码示例:
```java
import org.apache.poi.ss.usermodel.*;
import net.sf.json.JSONArray;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
public class ExcelToJsonConverter {
public static void main(String[] args) {
try {
// 加载Excel文件
FileInputStream file = new FileInputStream(new File("111.xlsx"));
Workbook workbook = WorkbookFactory.create(file);
Sheet sheet = workbook.getSheetAt(0); // 获取第一个sheet
List<JSONObject> list = new ArrayList<>();
int rowNum = sheet.getLastRowNum();
Row headerRow = sheet.getRow(0); // 获取表头
for (int i = 1; i <= rowNum; i++) {
Row row = sheet.getRow(i);
JSONObject jsonObject = new JSONObject();
for (int j = 0; j < headerRow.getLastCellNum(); j++) {
Cell cell = row.getCell(j);
String key = headerRow.getCell(j).getStringCellValue();
if (cell != null) {
switch (cell.getCellType()) {
case STRING:
jsonObject.put(key, cell.getStringCellValue());
break;
case NUMERIC:
jsonObject.put(key, cell.getNumericCellValue());
break;
default:
jsonObject.put(key, "");
}
} else {
jsonObject.put(key, "");
}
}
list.add(jsonObject);
}
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
// 将结果写入文件(可选)
Files.write(Paths.get("output.json"), jsonArray.toString().getBytes("UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
此代码首先加载Excel文件并读取其内容,然后将每一行的数据转换为JSON对象,并最终生成一个JSON数组。
### 注意事项
- 确保Excel文件的格式正确,尤其是列名与数据类型的一致性。
- 如果需要处理大量数据,建议优化内存管理以避免性能问题。
阅读全文
相关推荐















