json export excel

Most of the source code found on the Internet can run normally, but once the amount of data is large, the download will fail. The reason is that the length of the spliced ​​json string exceeds the definable length of var. There may be no limit to this length, but Memory must be limited

The source code I found on the Internet can only export 900 entries. The following method can export all 2000 entries. My data is less than 2000 entries, so please test yourself if you need it.

Search on github: jsonExportExcel

Official website example:

window.onload=function () {
    var option={};

    option.fileName = 'excel'
    option.datas=[
      {
        sheetData:[{one:'一行一列',two:'一行二列'},{one:'二行一列',two:'二行二列'}],
        sheetName:'sheet',
        //sheetFilter:['two','one'], 可有可无
        sheetHeader:['第一列','第二列']
      },
      /*
      {
        sheetData:[{one:'一行一列',two:'一行二列'},{one:'二行一列',two:'二行二列'}],
        sheetName:'sheet',
        //sheetFilter:['two','one'], 可有可无
        sheetHeader:['第一列','第二列']
      }
      */
    ];
    var toExcel=new ExportJsonExcel(option);
    toExcel.saveExcel();
}

My code:

$.ajax({		
    url: 'ajaxstudents_getAllData.php',
    dataType: 'text',
    success: function(res) {
	var option={};
		// 时间戳在线转换
		// https://tool.lu/timestamp/
		option.fileName = "招生信息"+new Date().getTime();
		option.datas=[
			{
				// sheetData:[{one:'一行一列',two:'一行二列'},{one:'二行一列',two:'二行二列'}],
				sheetData:JSON.parse(res),
				sheetName:'sheet',
				// sheetFilter:['two','one'],
				sheetHeader:['编号','身份证号','姓名','性别','户籍所在地','是否应届','准考证号','中考成绩','毕业学校','电话','减免学费',
				'建档立卡','身高','体重','推荐人','审核','缴费','录取','更新时间','报考专业名称','户籍性质','面试人']
			}
		];          
		var toExcel=new ExportJsonExcel(option);
		toExcel.saveExcel(); 
    }
});

Use php to splice json strings

$strjson="["; 

$strsql="select * from signup order by id asc";
// die($strsql);
$rst=$pdo->query($strsql);

while($rstInfo=$rst->fetch()){
	$strjson.='{';
	$strjson.='"编号":'.$rstInfo["id"].',';
	$strjson.='"身份证号":"'.$rstInfo["identity"].'",';	
	$strjson.='"姓名":"'.$rstInfo["realname"].'",';	
	$strjson.='"性别":"'.($rstInfo["sex"]=='1'?'男':'女').'",';	
	$strjson.='"户籍所在地":"'.$rstInfo["huji"].'",';	
	$strjson.='"是否应届":"'.($rstInfo["isywjie"]=='1'?'是':'否').'",';	
	$strjson.='"准考证号":"'.$rstInfo["zkzh"].'",';	
	$strjson.='"中考成绩":"'.$rstInfo["zkcj"].'",';	
	$strjson.='"毕业学校":"'.$rstInfo["school"].'",';	
	$strjson.='"电话":"'.$rstInfo["phone"].'",';	
	$strjson.='"减免学费":"'.($rstInfo["isjmxf"]=="1"?"是":"否").'",';	
	$strjson.='"建档立卡":"'.($rstInfo["isjdlk"]=="1"?"是":"否").'",';	
	$strjson.='"身高":"'.$rstInfo["shengao"].'",';	
	$strjson.='"体重":"'.$rstInfo["tizhong"].'",';	
	$strjson.='"推荐人":"'.$rstInfo["tuijianren"].'",';		
	$strjson.='"审核":"'.($rstInfo["ispass"]=="1"?"是":"否").'",';	
	$strjson.='"缴费":"'.($rstInfo["ispay"]=="1"?"是":"否").'",';		
	$strjson.='"录取":"'.($rstInfo["isenroll"]=="1"?"是":"否").'",';		
	$strjson.='"更新时间":"'.$rstInfo["updatetime"].'",';	
	$strjson.='"报考专业名称":"'.$rstInfo["mname"].'",';	
	$strjson.='"户籍性质":"'.$rstInfo["hname"].'",';		
	$strjson.='"面试人":"'.$rstInfo["mianshiren"].'"';		
	$strjson.='}';
	$strjson.=',';
}
//去除最后一个逗号
$strjson = substr($strjson,0,strlen($strjson)-1); 

$strjson.=']';

echo($strjson);

The screenshot of the exported excel document is as follows:

image.png

Refer to Daniel's article: https://blog.csdn.net/jx950915/article/details/80930343?utm_source=blogxgwz5

Guess you like

Origin blog.csdn.net/hifhf/article/details/107311541