تبدیل فایل Excel به JSON در سی شارپ
تبدیل فایلهای Excel به فرمت JSON در سی شارپ میتواند یک کار بسیار مفید باشد، به خصوص زمانی که بخواهید دادهها را در یک فرمت قابل استفاده برای وب یا برنامههای دیگر ذخیره کنید. در اینجا، مرحله به مرحله خواهم گفت که چگونه میتوانید این کار را انجام دهید.
۱. نصب کتابخانههای مورد نیاز
برای شروع، باید کتابخانههایی را نصب کنید که به شما اجازه میدهند با فایلهای Excel کار کنید. یکی از محبوبترین کتابخانهها برای این کار، EPPlus است. شما میتوانید این کتابخانه را از NuGet Package Manager نصب کنید.
```bash
Install-Package EPPlus
```
۲. خواندن دادهها از فایل Excel
پس از نصب، میتوانید شروع به خواندن دادهها از فایل Excel کنید. در اینجا کدی وجود دارد که یک فایل Excel را میخواند و دادهها را در یک لیست ذخیره میکند.
```csharp
using OfficeOpenXml;
using System.Collections.Generic;
using System.IO;
public List<Dictionary<string, object>> ReadExcelFile(string filePath)
{
var data = new List<Dictionary<string, object>>();
using (var package = new ExcelPackage(new FileInfo(filePath)))
{
var worksheet = package.Workbook.Worksheets[0]; // انتخاب شیت اول
var rowCount = worksheet.Dimension.Rows;
for (int row = 2; row <= rowCount; row++) // شروع از ردیف دوم به دلیل هدر
{
var rowData = new Dictionary<string, object>();
for (int col = 1; col <= worksheet.Dimension.Columns; col++)
{
var key = worksheet.Cells[1, col].Text; // هدر به عنوان کلید
var value = worksheet.Cells[row, col].Text;
rowData[key] = value;
}
data.Add(rowData);
}
}
return data;
}
```
۳. تبدیل دادهها به JSON
بعد از اینکه دادهها را خواندید، میتوانید آنها را به فرمت JSON تبدیل کنید. برای این کار میتوانید از Newtonsoft.Json استفاده کنید. این کتابخانه نیز میتواند از NuGet نصب شود.
```bash
Install-Package Newtonsoft.Json
```
سپس، با استفاده از کد زیر، دادههای خوانده شده را به JSON تبدیل کنید:
```csharp
using Newtonsoft.Json;
public string ConvertToJson(List<Dictionary<string, object>> data)
{
return JsonConvert.SerializeObject(data, Formatting.Indented);
}
```
۴. کد کامل
در نهایت، کد کامل شما ممکن است به شکل زیر باشد:
```csharp
using OfficeOpenXml;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
public class ExcelToJsonConverter
{
public List<Dictionary<string, object>> ReadExcelFile(string filePath)
{
var data = new List<Dictionary<string, object>>();
using (var package = new ExcelPackage(new FileInfo(filePath)))
{
var worksheet = package.Workbook.Worksheets[0];
var rowCount = worksheet.Dimension.Rows;
for (int row = 2; row <= rowCount; row++)
{
var rowData = new Dictionary<string, object>();
for (int col = 1; col <= worksheet.Dimension.Columns; col++)
{
var key = worksheet.Cells[1, col].Text;
var value = worksheet.Cells[row, col].Text;
rowData[key] = value;
}
data.Add(rowData);
}
}
return data;
}
public string ConvertToJson(List<Dictionary<string, object>> data)
{
return JsonConvert.SerializeObject(data, Formatting.Indented);
}
}
```
۵. استفاده از کد
برای استفاده از این کلاس، کافیست یک شی از آن بسازید و متدهای لازم را فراخوانی کنید:
```csharp
var converter = new ExcelToJsonConverter();
var data = converter.ReadExcelFile("path_to_your_file.xlsx");
var json = converter.ConvertToJson(data);
File.WriteAllText("output.json", json);
```
نتیجهگیری
با استفاده از این روش، میتوانید به سادگی دادههای خود را از فایل Excel استخراج کرده و به فرمت JSON تبدیل کنید. این فرآیند نه تنها کارآمد است، بلکه به شما اجازه میدهد تا دادهها را به شکل مورد نیاز خود مدیریت کنید.