java如何创建并写入Excel文件(.xlsx)?
Java开发人员可以使用很多在Android上无法使用的方法
我开始使用像OpenCSV这样的库,但不幸的是Excel已经known issues打开了CSV文件
然后我试着用:
- ApachePOI——它的方法肯定太多了李>
- JExcelAPI——它可以工作,但只在旧的二进制文件上工作。xls文件李>
- docx4j——还是太多JAR了,因为它基于JAXB,而Android中不包括JAXB李>
我的问题是,如何在中创建一个简单的Excel文件。Android上的xlsx格式,不超过65k方法
# 1 楼答案
因为这个问题似乎相当简单:“为Excel(
*.xlsx
)创建Office Open XML文件的最轻量级方法是什么?”,我将提供一个不需要任何库的示例,除了默认的java.lang
、java.io
和java.util.zip
*.xlsx
文件只不过是一个ZIP存档,包含XML文件和目录结构中的其他文件。因此,我们所需要的只是创建、读取和写入ZIP档案以及创建、读取和写入XML文件的可能性。对于ZIP部分,我使用java.util.zip
,对于XML部分,我使用字符串操作。通过字符串操作创建和操作XML并不是最推荐的操作XML的方法,但它是最轻量级的方法,因为它不需要任何额外的XML库完整示例:
# 2 楼答案
2018年。使用Microsoft Graph API并在O365中创建Excel文件
微软在Angular和C#上发布了一些例子。这不是Java,但它是一个很好的起点:https://developer.microsoft.com/en-us/graph/docs/concepts/excel-write-to-workbook
该MS Graph Java SDK与Android兼容
限制——使用API从头开始创建Excel文件并不容易。您可能希望保留一个空白工作簿,并每次克隆它
# 3 楼答案
第一个答案:在服务器端完成
如果这是不可能的,就使用JExecelAPI——几乎所有读取xlsx文件的东西都会读取xls文件
其他的Excel库都太大了
另一个想法是,手动编写csv文件,或者使用许多可用的csv库之一编写。同样,大多数读取Excel文件的应用程序也会读取csv文件
# 4 楼答案
使用ApachePOI,只需将
compile "com.android.support:multidex:1.0.1"
添加到build.gradle
中的依赖项,即可启用多索引。还需要将multiDexEnabled设置为true。这将消除65k方法的限制# 5 楼答案
如果您不需要从任何来源读取xlsx文件,我建议您使用CSV excel,它完全能够将该类型转换为其任何std输出
即使你需要公式,单元格格式,也有办法在你引用的库中使用它,或者使用你自己的xml解析器,正如我之前的许多人所说,excel格式只是一个包含xml的压缩包。以下是对这些xml的描述:
https://msdn.microsoft.com/en-us/library/dd979921(v=office.12).aspx
你会发现excel的格式非常复杂,简单的可追溯性并不是他们的首要任务。因此,使用XPath或JAXB创建自己的受限解析器将是一项繁重的工作,但并非不可能
但我不明白你为什么要限制方法的数量?如果是关于制作嵌入式软件,在我看来,你不应该使用。xlsx,这是一个复杂而繁重的文件,只是为了保存网格