Android基于Spire.Doc.Android生成word

Posted Leonban

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android基于Spire.Doc.Android生成word相关的知识,希望对你有一定的参考价值。

最近客户提了新功能,在移动端生成word报告,最后找到了一个成熟的三方spire ,免费版有瑕疵。 同时poi也可以实现,这里只做简单的分享,大家可以自行去查阅poi相关的东西。
 

1.首先:导入jar包https://repo.e-iceblue.cn/repository/maven-public/e-iceblue/spire.doc.android/10.5.0/spire.doc.android-10.5.0.jarhttps://repo.e-iceblue.cn/repository/maven-public/e-iceblue/spire.doc.android/10.5.0/spire.doc.android-10.5.0.jar2.代码实现

public String saveWord(String distline_name) 
    //创建Word文档
    Document document = new Document();
    //添加一个section
    Section section = document.addSection();
    //添加三个段落至section
    Paragraph para1 = section.addParagraph();

    para1.appendText(distline_name + "报告");//标题

    Paragraph para2 = section.addParagraph();
    para2.appendText(" 设备名称:" + "服务器");
    Paragraph para3 = section.addParagraph();
    para3.appendText("问题描述:" + "设备异常无法使用");
    //添加第二个段落
    Paragraph paragraph4 = section.addParagraph();
    //添加图片到段落(我这个是本地图片路径)

    //添加图片的方法
    DocPicture picture = paragraph4.appendPicture("/sdcard/test.png");//替换为自己本地图片的路径 
    //设置图片宽度
    picture.setWidth(200f);
    //设置图片高度
    picture.setHeight(150f);

    //设置第二段和第三段的段首缩进
    para2.getFormat().setFirstLineIndent(25f);
    para3.getFormat().setFirstLineIndent(25f);
    paragraph4.getFormat().setFirstLineIndent(25f);

    //设置第一段和第二段的段后间距
    para2.getFormat().setAfterSpacing(10f);
    para3.getFormat().setAfterSpacing(10f);
    paragraph4.getFormat().setAfterSpacing(10f);
 
    para1.getFormat().setAfterSpacing(15f);
    //将第一段作为标题,设置标题格式
    ParagraphStyle style1 = new ParagraphStyle(document);
    style1.setName("titleStyle");
    style1.getCharacterFormat().setBold(true);
    style1.getCharacterFormat().setTextColor(Color.BLUE);
    style1.getCharacterFormat().setFontName("宋体");
    style1.getCharacterFormat().setFontSize(12f);
    document.getStyles().add(style1);
    para1.applyStyle("titleStyle");

    //设置第一个段落的对齐方式
    para1.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

    //保存文档
    String path = Environment.getExternalStorageDirectory().getPath();
    //换成自己路径,输出路径
    File file = new File(path + "/word");
    if (!file.exists()) 
        file.mkdirs();
    
    String fileName = "";
    fileName = distline_name + "报告"+ ".docx";//文档格式docx

    String fileWordPath = file.getPath() + "/" + fileName;
    document.saveToFile(fileWordPath, FileFormat.Docx);

    return fileWordPath;

3.生成效果图

缺点是免费版所以生成的word首行会有个他们的水印。

同时使用POI没有水印问题

Android基于Poi生成Wordhttps://blog.csdn.net/Hearbeat/article/details/128660067

以上是关于Android基于Spire.Doc.Android生成word的主要内容,如果未能解决你的问题,请参考以下文章

基于android-async-http的android服务

基于android的简单计算器

Android日历——基于RecyclerView的日历

基于 Android 中的一个句柄旋转和缩放视图

Xamarin.Android 中基于 RESX 的本地化

Android eSIM-LPA基于Android13的实现