当前位置: 首页 > news >正文

厦门网站营销建设执业资格注册中心官方网站

厦门网站营销,建设执业资格注册中心官方网站,定制网站制作服务商,wordpress多重搜索很多开发语言都能找到excel文档读写的库,但是在资源极其受限的环境下开发,引入这些库会带来兼容性问题。因为一个小功能引入一堆库,我始终觉得划不来。看到有项目引用的jar包有一百多个,看着头麻,根本搞不清谁依赖谁。…

很多开发语言都能找到excel文档读写的库,但是在资源极其受限的环境下开发,引入这些库会带来兼容性问题。因为一个小功能引入一堆库,我始终觉得划不来。看到有项目引用的jar包有一百多个,看着头麻,根本搞不清谁依赖谁。你会说用maven、gradle来解决,但是我极不喜欢,比如在java与安卓都要支持的情况,就要碰到麻烦了。

通过分析excel文档格式,自己用模板生成,就不会碰到这类问题。xlsx格式是开放的,xml形式的,应该也会稳定很长时间。下面介绍一下分析的结果,实现方法类似于我前面写的关于docx文件的输出操作。java中可以使用freemarker、js等动态的方法替换模板,其他语言应该有类似的工具。java中用到的工具只有zip(开发语言自带),js(jdk11自带或用quickjs)或freemarker,连接如下:

java中,怎样用最简单方法实现写word文档_java 写word-CSDN博客

xls文档格式介绍,看这篇文档OOXML:详解Excel工作表(worksheet) - 知乎 (zhihu.com)

xlsx文档本质也是一个zip文件,将扩展名改成zip,然后解压,目录如下,主要内容都在xl子目录中:

worksheets目录下有各个sheet的数据,比如sheet1.xml。只要将数据逐行格式化输出到sheet1.xml就行了,输出完成后,再将内容打包成zip,然后将文件扩展名改成xlsx就可以了。

在输出到sheet1.xml时,注意单元的类型不要设置,一旦设置了t="s",<v></v>中的内容就是一个索引值(比如0,1,2,3,5...N),表示字符串是sharedStrings.xml中的第N个字符串。sharedStrings.xml中记录了所有共享的字符串,从前往后,编号分别为0、1、2...。使用sharedStrings.xml能节省一点空间,但是对于freemarker之类的格式库就麻烦了,所以单元格不建议设置t="s",而是在<v></v>之间直接输出内容。

<row r="4" ht="15.75" customHeight="1" spans="1:7">
<c r="A1" s="7"><v>1</v></c>
<c r="B1" s="9" (t="s"不可以有)><v>7</v></c>
</row>

提供一个用js输出的sheet1.xml文件,其中的list可以通过自己的一些方法传进来:

var list=[{a:1,b:'1b',c:'test1'},{a:2,b:'2b',c:'test2'}];
var txt=[`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:etc="http://www.wps.cn/officeDocument/2017/etCustomData"><sheetPr/><dimension ref="A1:C2"/><sheetViews><sheetView tabSelected="1" workbookViewId="0"><selection activeCell="C2" sqref="C2"/></sheetView></sheetViews><sheetFormatPr defaultColWidth="9" defaultRowHeight="14.4" outlineLevelRow="1" outlineLevelCol="2"/>
<sheetData>
<row r="1" spans="1:3"><c r="A1" t="s"><v>0</v></c><c r="B1" t="s"><v>1</v></c><c r="C1" t="s"><v>2</v></c></row>`];
var i=2;
for(var l of list) {txt.push(`<row r="`,i,`" spans="1:3"><c r="A"`,i,`><v>`,l.a,`</v></c><c r="B`,i,`"><v>`,l.b,`</v></c><c r="C`,i,`"><v>`,l.c,`</v></c></row>`);i++;
}
txt.push(`</sheetData><pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
<pageSetup paperSize="9" orientation="portrait"/><headerFooter/></worksheet>`);
txt.join('');

zip打包后,再用excel打开,就是下面这样。

http://www.yayakq.cn/news/591391/

相关文章:

  • 企业门户网站的建设方法九一人才网找工作
  • 无锡网络公司可以制作网站关于地产设计网站
  • 网站建设的特征html5购物网站模板
  • 医药网站备案成都定制app开发公司
  • 北京网站推广服务建设一个班级网站的具体步骤
  • 网站免费制作网站建设问一问公司
  • 做u盘的老外网站山阳网站建设
  • 网站建设 美食站点可以不花钱做网站吗
  • 网站域名的后缀求几个夸克没封的a站2023
  • 北京网站备案代理湖南怀化市住房城乡建设局网站
  • 西安网站建设畅网石家庄手机网站制作
  • 购物网站多少钱专业建站源码
  • 哪种语言做网站最合适wordpress迁移容易
  • 网站开发上证k线龙岗网站建设费用明细
  • 广州网站优化推广公司公司办公网络设计方案
  • 创建一个网站的项目体现项目完成速度因素的能免费做网站
  • 东莞网站建设哪里好荆州建设网站
  • 墨刀做网站网页临沂百度seo
  • asp单页网站源码推广普通话调查问卷
  • 网站被k怎么办动易网站地图
  • 网站营销怎么做怎么做跳转网站首页
  • 老的网站为什么要改版新网站佛山网络公司策划
  • 网站页面效果图怎么做如何购买一个网站的域名
  • 中国建设银行网站太慢了wp网站做404
  • 帝国cms个人网站模板可以做外链视频的网站
  • 南京企业网站设计建设wordpress 相册浏览器
  • 网站服务器的工作原理珠海做网站最好的公司
  • 锚文本外链查询网站百度地图的精准定位功能
  • 做棋牌网站违法嘛拓普网站建设
  • 手机百度关键词排名 seo网站优化软件seo整站优化价格