税务开票的excel格式的变化20240710

今天,税务开票的excel接口,出现变化, 提示"导入模板已更新,请下载最新的模板填写后重新上传",

分析了一下,发现新的模板,多了2个隐藏的工作表, 除了第一个"1-明细模板", 还有第二个"excelVersion",第三个"xzqhdm",

其中excelVersion工作表的A4单元,放了内容:"mx;20240605", 

第三个工作表的第一列, 放了2863个行政区划, 没啥作用, 我们只要添加第二个工作表即可,js代码如下:

<button id=xport>导出excel(20240710格式)</button>
 
<script type="module">
xport.addEventListener("click", async() => {
  const XLSX = await import("https://cdn.sheetjs.com/xlsx-0.18.1/package/xlsx.mjs");
  const response = await fetch("https://www.bjlx.org.cn/data.json"); 
  if (!response.ok) {
    throw new Error(`HTTP error! status: ${response.status}`);
  }
  const data = await response.json();
  const data1 = [['','','','','','','','','',''],['','','','','','','','','',''], ...data]; //前面要添加2行空行,否则找不到数据
  const wb = XLSX.utils.book_new();
  var ws = XLSX.utils.aoa_to_sheet(data1);
  XLSX.utils.book_append_sheet(wb, ws, "1-明细模板");//第一个工作表,数据来自data.json文件
  ws=XLSX.utils.aoa_to_sheet([['',''],['',''],['',''],['mx;20240605','']]);  
  XLSX.utils.book_append_sheet(wb, ws, "excelVersion");//第二个工作表, 数据是固定的格式
  XLSX.writeFile(wb, "销售发票$_GET[id]开票信息.xlsx");
});
 
data.json:
[
["项目名称","商品和服务税收分类编码","规格型号","单位","商品数量","商品单价","金额","税率","折扣","优惠政策类型"],
["DPD总氯试剂包","1070214010000000000","2105669-CN","套","1","239.00","239.00",0.13,"",""],
["余氯试剂","1070214010000000000","2105569-CN","套","1","238.00","238.00",0.13,"",""]
]

 

另外, 新的模板, 对数据小数位数更严格了, 金额只能2位数字,税率的小数,后面不能带0

附件大小
发票开具项目信息导入模板.xlsx50.05 千字节