JsonExporter.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.IO;
using System.Data;
using System.Text;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace excel2json {
/// <summary>
/// 将DataTable对象,转换成JSON string,并保存到文件中
/// </summary>
class JsonExporter {
string mContext = "";
public string context {
get {
return mContext;
}
}
/// <summary>
/// 构造函数:完成内部数据创建
/// </summary>
/// <param name="sheet">ExcelReader创建的一个表单</param>
/// <param name="headerRows">表单中的那几行是表头</param>
public JsonExporter(DataTable sheet, int headerRows, bool lowcase, bool exportArray) {
if (sheet.Columns.Count <= 0)
return;
if (sheet.Rows.Count <= 0)
return;
//-- 转换为JSON字符串
if (exportArray) {
convertArray(sheet, headerRows, lowcase);
}
else {
convertDict(sheet, headerRows, lowcase);
}
}
private void convertArray(DataTable sheet, int headerRows, bool lowcase) {
List<object> values = new List<object>();
int firstDataRow = headerRows - 1;
for (int i = firstDataRow; i < sheet.Rows.Count; i++) {
DataRow row = sheet.Rows[i];
values.Add(
convertRowData(sheet, row, lowcase, firstDataRow)
);
}
//-- convert to json string
mContext = JsonConvert.SerializeObject(values, Formatting.Indented);
}
/// <summary>
/// 以第一列为ID,转换成ID->Object的字典对象
/// </summary>
private void convertDict(DataTable sheet, int headerRows, bool lowcase) {
后面还有 79 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
