代码拉取完成,页面将自动刷新
采用内存优化模式,支持超大记录集,占用极少内存
更新说明字段高度
** Excel.class.php **增加前导单引号,防止Excel自动转换单元格数据
npm install xlsxwriter
npm install xlrd
python demo-make-json-data.py
在当前目录下面生成JSON文件** JsonToExcel.json ** 内容格式如下
{"data": {"column": [{"edit": false, "field": "id", "example": "", "name": "\u6570\u636e\u7f16\u53f7(\u6570\u5b57)", "description": "\u4e0d\u53ef\u7f16\u8f91"}, {"edit": true, "field": "field0", "example": "101,102", "name": "\u7f16\u53f70(\u591a\u9009)", "description": "\u53ef\u9009\u503c:\n101: \u9009\u98791\n102: \u9009\u98792\n103: \u9009\u98793"}, {"edit": true, "field": "field1", "example": "101,102", "name": "\u7f16\u53f71(\u591a\u9009)", "description": "\u53ef\u9009\u503c:\n101: \u9009\u98791\n102: \u9009\u98792\n103: \u9009\u98793"}, {"edit": true, "field": "field2", "example": "101,102", "name": "\u7f16\u53f72(\u591a\u9009)", "description": "\u53ef\u9009\u503c:\n101: \u9009\u98791\n102: \u9009\u98792\n103: \u9009\u98793"}], "width": 20, "description": ["\u6d4b\u8bd5\u8bf4\u660e1", "\u6d4b\u8bd5\u8bf4\u660e2", "\u6d4b\u8bd5\u8bf4\u660e3"], "name": "\u6d4b\u8bd5\u5de5\u4f5c\u7c3f0", "height": 20}, "type": "sheet"}
{"data": {"field8": "value-0-8", "field9": "value-0-9", "field2": "value-0-2", "id": 0}, "type": "row"}
python j2x.py -p JsonToExcel.json
在当前目录下生成** JsonToExcel.xlsx **文件
python x2j.py -p ExcelToJson.xlsx
在当前目录下生成** ExcelToJson.json **文件 内容格式如下
{"field8": "value-0-8", "field9": "value-0-9", "field2": "value-0-2"}
{"field8": "value-1-8", "field9": "value-1-9", "field2": "value-1-2"}
这个不采用PHPExcel的原因是因为PHPExcel太占用内存,实现相应的功能,写入10w条数据,PHPExcel占用内存达到512M以上.而本程序占用内存小于20M
具体实现参照demo.php文件
php demo.php
输出内容如下
string(9) "test.xlsx"
array(1) {
["field"]=>
string(12) "测试内容"
}
array(1) {
["field"]=>
string(12) "测试内容"
}
array(1) {
["field"]=>
string(12) "测试内容"
}
{
"type": "sheet", // 类型,可选为sheet/row
"data": {
"name": "test", // 工作簿名称
"width": 20, // 工作簿列宽度
"height": 20, // 工作簿行高度
"description": [ // 工作簿第一行内容,主要用于内容说明
"说明1", // 第一列内容
"说明2", // 第二列内容
"说明3" // 第三列内容
],
"column": [ // 字段列表
{
"field": "id", // 字段名称,必填
"edit": true, // 是否可编辑,如果设置为false,则列背景将被设置为灰色(#EEEEEE)
"name": "数据编号", // 字段名称 写入第二行
"description": "说明", // 字段说明 写入第三行
"example": "参考值" // 字段参考值 写入第四行
}
]
}
}
{
"type": "row", // 类型,可选为sheet/row
"data": { // 数据
"id": "test" // 字段名 : 数据值
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。