public static class ExcelToJsonConverter
{
/// <summary>
/// 使用ClosedXML库
/// </summary>
/// <param name="excelFilePath">输入excel表文件地址</param>
/// <returns></returns>
public static string ExcelConvertToJson(string excelFilePath)
{
using (var workbook = new XLWorkbook(excelFilePath))
{
var worksheet = workbook.Worksheet(1);
var headers = worksheet.Row(1).CellsUsed().Select(c => c.Value.ToString()).ToList();
var dataList = new List<Dictionary<string, string>>();
for (int row = 2; row <= worksheet.LastRowUsed().RowNumber(); row++)
{
var rowData = new Dictionary<string, string>();
for (int col = 0; col < headers.Count; col++)
{
var cell = worksheet.Row(row).Cell(col + 1);
rowData.Add(headers[col], cell.Value.ToString());
}
dataList.Add(rowData);
}
string json = JsonConvert.SerializeObject(dataList, Formatting.Indented);
return json;
}
}
/// <summary>
/// 使用OfficeOpenXml库,禁止商用,商用请获取许可
/// </summary>
/// <param name="fileInfo">输入excel表文件地址</param>
/// <returns></returns>
//public static string ConvertExcelToJson(string fileInfo)
//{
// ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // 设置许可证上下文
// using (var package = new ExcelPackage(fileInfo))
// {
// ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; // 假设我们处理第一个工作表
// int colCount = worksheet.Dimension.End.Column;
// int rowCount = worksheet.Dimension.End.Row;
// var list = new List<Dictionary<string, object>>();
// for (int row = 2; row <= rowCount; row++) // 假设第一行是标题行
// {
// var rowData = new Dictionary<string, object>();
// for (int col = 1; col <= colCount; col++)
// {
// rowData.Add(worksheet.Cells[1, col].Text, worksheet.Cells[row, col].Value);
// }
// list.Add(rowData);
// }
// string json = JsonConvert.SerializeObject(list, Formatting.Indented);
// return json;
// }
//}
}
C#Excel文件内容转json格式
于 2024-09-10 16:29:52 首次发布