C#Excel文件内容转json格式


	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;
		//	}
		//}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值