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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。