C# excel转json
时间: 2024-11-01 14:05:36 浏览: 26
在C#中,将Excel文件转换为JSON通常涉及以下几个步骤:
1. **引用库**:首先需要添加对Excel和JSON处理的支持。你可以使用`Microsoft.Office.Interop.Excel`库读取Excel数据,然后使用`Newtonsoft.Json`或`System.Text.Json`来序列化成JSON。
```csharp
using OfficeOpenXml;
using Newtonsoft.Json; // 或 System.Text.Json
```
2. **打开并读取Excel文件**:通过`FileInfo`或`SpreadsheetReader`从Excel文件加载数据。
```csharp
var fileInfo = new FileInfo("example.xlsx");
using (var package = new ExcelPackage(fileInfo))
{
var worksheet = package.Workbook.Worksheets[0];
}
```
3. **遍历工作表数据**:读取单元格数据,并将其组织成适合JSON的结构,如动态对象或列表。
```csharp
List<Dictionary<string, object>> jsonObjects = new List<Dictionary<string, object>>();
foreach (var row in worksheet.Rows)
{
var obj = new Dictionary<string, object>();
foreach (var cell in row.Cells)
{
if (!string.IsNullOrEmpty(cell.Value.ToString()))
{
obj[cell.ColumnHeader] = cell.Value.ToString();
}
}
jsonObjects.Add(obj);
}
```
4. **序列化为JSON字符串**:使用`JsonConvert.SerializeObject()`或`System.Text.Json`的`WriteAsync`方法将列表转换为JSON字符串。
```csharp
string jsonString;
// Newtonsoft.Json
jsonString = JsonConvert.SerializeObject(jsonObjects);
// System.Text.Json
var options = new JsonSerializerOptions();
jsonString = JsonSerializer.Serialize(jsonObjects, options);
```
5. **保存到文件或返回给客户端**:最后,可以将JSON字符串保存到新的文件或直接作为HTTP响应返回。
```csharp
File.WriteAllText("output.json", jsonString); // 存储到本地文件
// HTTP 返回
return jsonString;
```
阅读全文