冰蓝科技
|
028-81705109
|
|
微信扫一扫
|

Spire.Cloud 纯前端文档控件

在Excel中,我们可以选中含有批注的单元格,右键并点击“显示/隐藏批注”选项来更改该批注的显示状态。本文将介绍如何使用Spire.XLS for Java实现在Excel文档中隐藏或显示批注。

原Excel文档:

Java 在 Excel 文档中隐藏或显示批注

import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class HideOrShowComments {
    public static void main(String[] args){
        //创建Workbook实例
        Workbook workbook = new Workbook();
        //加载Excel文档
        workbook.loadFromFile("CommentExample.xlsx");

        //获取第一张工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        //隐藏工作表中第一、二个批注
        sheet.getComments().get(0).isVisible(false);
        sheet.getComments().get(1).isVisible(false);

        //显示第三个批注
        sheet.getComments().get(2).isVisible(true);

        //保存结果文档
        workbook.saveToFile("HideOrShowComment.xlsx", ExcelVersion.Version2013);
    }
}

结果文档:

Java 在 Excel 文档中隐藏或显示批注

Spire.PDF for Java 3.5.1已正式发布。该版本支持PDF签名添加时间戳、设置在PDF页面是否显示签名信息以及绘制箭头、云朵、椭圆、矩形和连接线条形状等标记。另外,也修复了在提取PDF中的文本、将PDF转为图片时出现的一些问题。新功能及问题修复详情如下。

新功能:

问题修复:


获取Spire.PDF for Java 3.5.1,请点击:

https://www.e-iceblue.cn/Downloads/Spire-PDF-JAVA.html

在日常数据处理工作中,我们经常需要从 Excel 表格中提取插入的文本框内容,比如汇总备注、审阅意见等。但如果手动复制粘贴,效率低,且容易出错。本文将介绍如何使用 Spire.XLS for Java 快速批量提取 Excel 中文本框的内容,提高工作效率。

安装 Java 库助力自动化提取文本框内容

Spire.XLS for Java 是一款功能强大的 Excel 处理库,可让 Java 开发者无需安装 Microsoft Office 即可操作 Excel 文件。它支持读取、创建、修改、转换 Excel 等基础功能,同时也能访问和操作工作表中的文本框、图片、图表等对象。 你可以通过下面两种方法安装这个 Java 库:

方案一:如果你使用 Maven,可以在 pom.xml 文件中添加以下依赖:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>16.9.2</version>
    </dependency>
</dependencies>

方案二:你也可以下载 Spire.XLS 的安装包,解压后将其中的 .jar 文件手动添加到你的 Java 编译器或构建路径中。

提取 Excel 中单个文本框的内容

如果你的 Excel 文件中只包含一个文本框,或者你清楚自己需要提取的是特定的文本框内容,那么可以使用本章介绍的方法直接读取并打印该文本框的内容。这种方式非常简单快捷,适用于仅需在控制台查看文本结果的场景,为后续将内容保存到文本文件打下基础。接下来,让我们看看如何通过 Java 代码实现这个目标。

详细步骤解析:

  • 创建 Workbook 对象,并导入一个 Excel 文件。
  • 获取一个工作表。
  • 使用 Worksheet.getTextBoxes().get() 方法获取指定文本框。
  • 通过 XlsTextBoxShape.getText() 方法获取该文本框中的内容。
  • 将提取的文本打印在控制台。

下方的代码演示了如何使用 Java 提取第二个工作表中第一个文本框的内容,并将其打印到控制台上:

import com.spire.xls.Workbook;  
import com.spire.xls.Worksheet;  
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;  
  
public class ExtractTextFromTextbox {  
  
    public static void main(String[] args) {  
  
        // 创建 Workbook 对象  
        Workbook workbook = new Workbook();  
  
        // 加载示例文档  
        workbook.loadFromFile("/示例文档.xlsx");  
  
        // 获取第二个工作表  
        Worksheet sheet = workbook.getWorksheets().get(1);  
  
        //获取第二个文本框  
        XlsTextBoxShape shape = (XlsTextBoxShape)sheet.getTextBoxes().get(0);  
  
        // 获取文本框中的文本  
        String text = shape.getText();  
        System.out.print(text);  
    }  
}

Java 提取 Excel 中单个文本框内容

提取 Excel 中所有文本框的内容

在上一章中,我们了解了如何读取单个文本框的内容并将其打印到控制台。然而,在实际工作中,Excel 文件往往包含多个文本框。本章将介绍如何通过循环一次性提取所有文本框的内容,为批量处理提供便利。

事实上,提取所有 Excel 中文本框的过程与提取单个文本框几乎一致,唯一的区别是在获取内容前需要使用 for 循环遍历所有文本框。具体的实现可以参考以下代码示例。

下方代码展示了怎样获取第二个工作表中的所有文本框的内容,并将其打印在控制台上:

import com.spire.xls.Workbook;  
import com.spire.xls.Worksheet;  
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;  
  
public class ExtractTextFromTextbox {  
  
    public static void main(String[] args) {  
        // 创建Workbook对象  
        Workbook workbook = new Workbook();  
  
        // 加载示例文档  
        workbook.loadFromFile("/示例文档.xlsx");  
  
        // 获取第二个工作表  
        Worksheet sheet = workbook.getWorksheets().get(1);  
  
        // 遍历所有文本框  
        for (int i = 0; i < sheet.getTextBoxes().getCount(); i++) {  
            XlsTextBoxShape shape = (XlsTextBoxShape) sheet.getTextBoxes().get(i);  
            String text = shape.getText();  
            System.out.println("文本框" + (i + 1) + ": " + text);  
        }  
    }  
}

Java 提取 Excel 中所有文本框内容

获取 Excel 文本框内容并保存为 Text 文档

当然,获取文本框内容的目的往往不仅仅是为了查看,还可能需要对其进行后续处理,比如提炼关键信息用于撰写报告,或者将内容整合到其他文件中。因此,将提取到的 Excel 文本框内容保存为文本文件,会更加方便后续使用和管理。

关键步骤:

  • 重复前面获取所有文本框内容的过程:加载工作簿、获取工作表、循环遍历文本框。
  • 在循环中,将提取到的每条文本内容使用追加模式写入指定的文本文件中,从而保存所有文本框内容到文件中。
import com.spire.xls.Workbook;  
import com.spire.xls.Worksheet;  
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;  
import java.io.FileWriter;  
import java.io.IOException;  
  
public class ExtractAndSaveText {  
  
    public static void main(String[] args) {  
        Workbook workbook = new Workbook();  
        workbook.loadFromFile("/示例文档.xlsx");  
  
        Worksheet sheet = workbook.getWorksheets().get(1);  
  
        // 遍历所有文本框  
        for (int i = 0; i < sheet.getTextBoxes().getCount(); i++) {  
            XlsTextBoxShape shape = (XlsTextBoxShape) sheet.getTextBoxes().get(i);  
            String text = shape.getText();  
  
            // 保存到文件  
            saveTextToFile("文本框 " + (i + 1) + ": " + text);  
        }  
    }  
  
    public static void saveTextToFile(String text) {  
        try {  
            FileWriter writer = new FileWriter("/提取文本.txt", true);  
            writer.write(text + "\n");  
            writer.close();  
            System.out.println("文本已保存");  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}

结语

通过以上步骤,我们成功实现了从 Excel 中批量提取文本框内容,并将其保存到文本文件中。这不仅提高了处理效率,也为后续的数据整理和报告编制打下了良好基础。如果你对本文使用的 Spire.XLS for Java 感兴趣,也可以联系我们申请30天免费试用!

Spire.PDF 6.5.6已发布。该版本支持添加和转换SVG图片到PDF,并修复了将PDF转换为Word、提取文本以及填充TextBoxField时出现的一些问题。新功能及问题修复详情见下文。

新功能:

问题修复:


获取Spire.PDF 6.5.6,请点击:

https://www.e-iceblue.cn/Downloads/Spire-PDF-NET.html

HTML(超文本标记语言)主要用于构建网页内容。虽然 HTML 在网页上呈现信息方面表现出色,但在数据分析功能和数据操作特性方面却不如 Excel 这类电子表格软件。通过将 HTML 数据转换为 Excel,用户可以利用 Excel 的高级功能,例如公式、图表、表格和宏等,进行高效地组织和分析数据。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中将 HTML 转为 Excel。

安装 Spire.XLS for .NET

首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。

PM> Install-Package Spire.XLS

C# 将 HTML 转为 Excel

Spire.XLS for .NET 提供了 Workbook.LoadFromHtml() 方法来加载 HTML 文件。加载 HTML 文件后,你可以使用 Workbook.SaveToFile() 方法轻松将其保存为 各种 Excel 格式,例如 Version97to2003、Version2007、Version2010、Version2013、Version2016、Xlsb2007、Xlsb2010 等。详细步骤如下:

  • C#
using Spire.Xls;

namespace HtmlToExcel
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 指定输入的 HTML 文件路径
            string filePath = @"test.html";

            // 创建 Workbook 类的对象
            Workbook workbook = new Workbook();

            // 加载 HTML 文件
            workbook.LoadFromHtml(filePath);

            // 将 HTML 文件保存为 Excel 2013(XLSX)格式
            string result = @"HtmlToExcel.xlsx";
            workbook.SaveToFile(result, ExcelVersion.Version2013);

            workbook.Dispose();
        }
    }
}

C# 将 HTML 转为 Excel

C# 将 HTML 字符串插入 Excel 单元格

除了将 HTML 文件转换为 Excel 外,Spire.XLS for .NET 还支持通过 CellRange.HtmlString 属性将 HTML 字符串插入到 Excel 单元格中。详细步骤如下:

  • C#
using Spire.Xls;

namespace InsertHtmlStringInExcel
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 类的对象
            Workbook workbook = new Workbook();
            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 指定 HTML 字符串
            string htmlCode = "<p><font size='12'>这是一段包含<b>粗体文本</b>和<span style='color: red;'>彩色文本</span>的段落。</font></p>";

            // 获取要添加 HTML 字符串的单元格
            CellRange range = sheet.Range["A1"];
            // 将 HTML 字符串添加到单元格
            range.HtmlString = htmlCode;

            // 设置第一列的列宽
            sheet.SetColumnWidth(1, 45);

            // 将生成的工作簿保存为新文件
            string result = @"InsertHtmlStringInCell.xlsx";
            workbook.SaveToFile(result, ExcelVersion.Version2013);

            workbook.Dispose();
        }
    }
}

C# 将 HTML 转为 Excel

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

本文介绍使用Spire.Doc for Java来复制Word中的水印效果,支持复制文本水印或图片水印。

测试文档如下,包含图片水印:

Java 复制 Word 水印

import com.spire.doc.*;

public class CopyWatermark {
    public static void main(String[] args) {
        //加载文档1
        Document doc1 = new Document();
        doc1.loadFromFile("input.docx");

        //加载文档2
        Document doc2 = new Document();
        doc2.loadFromFile("target.docx");

        //获取文档1的水印效果,设置到文档2
        doc2.setWatermark(doc1.getWatermark());

        //保存文档2
        doc2.saveToFile("CopyWatermark.docx",FileFormat.Docx_2013);
        doc2.dispose();
    }
}

水印复制效果:

Java 复制 Word 水印

本文将介绍如何使用Spire.Presentation for Java设置和获取PowerPoint幻灯片的标题。

设置幻灯片标题

import com.spire.presentation.FileFormat;
import com.spire.presentation.ISlide;
import com.spire.presentation.Presentation;

public class SetSlideTitle {
    public static void main(String[] args) throws Exception {
        //创建Presentation实例
        Presentation ppt = new Presentation();
        //获取第一张幻灯片
        ISlide slide = ppt.getSlides().get(0);
        
        //给幻灯片设置标题
        slide.setTitle("幻灯片标题");
        
        //保存文档
        ppt.saveToFile("SetTitle.pptx", FileFormat.PPTX_2013);
    }
}

Java 设置和获取 PowerPoint 幻灯片标题

获取幻灯片标题

import com.spire.presentation.ISlide;
import com.spire.presentation.Presentation;

public class GetSlideTitle {
    public static void main(String[] args) throws Exception {
        //创建Presentation实例
        Presentation ppt = new Presentation();
        //加载PowerPoint文档
        ppt.loadFromFile("SetTitle.pptx");

        //获取第一张幻灯片
        ISlide slide = ppt.getSlides().get(0);

        //打印幻灯片标题
        String tile = slide.getTitle();
        System.out.println(tile);
    }
}

Java 设置和获取 PowerPoint 幻灯片标题

本文介绍如何使用Spire.XLS for Java隐藏或显示Excel中的网格线。

import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class HideOrShowGridlines {

    public static void main(String[] args) {

        //创建Workbook对象
        Workbook workbook = new Workbook();

        //加载Excel文档
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");

        //获取第一个工作表
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //隐藏网格线
        worksheet.setGridLinesVisible(false);

        ////显示网格线
        //worksheet.setGridLinesVisible(true);

        //保存文档
        workbook.saveToFile("HideGridlines.xlsx", ExcelVersion.Version2016);
    }
}

隐藏网格线

Java 隐藏或显示 Excel 中的网格线

该文将介绍如何使用Spire.Presentation for Java来提取PPT中SmartArt图形的文本内容。

首先, 准备一个文档中含有SmartArt图形的幻灯片文件:

Java 提取 PowerPoint 中 SmartArt 图形的文本内容

提取PPT中SmartArt图形的文本内容代码如下:

import com.spire.presentation.Presentation;
import com.spire.presentation.diagrams.ISmartArt;
import java.io.*;

public class extractTextFromSmartArt {
    public static void main(String[] args) throws Exception {
        Presentation presentation = new Presentation();
        presentation.loadFromFile("Sample.pptx");

        //新建txt文档
        String result = "output/extractTextFromSmartArt.txt";
        File file=new File(result);
        if(file.exists()){
            file.delete();
        }
        file.createNewFile();
        FileWriter fw =new FileWriter(file,true);
        BufferedWriter bw =new BufferedWriter(fw);

        bw.write("Below is extracted text from SmartArt:" + "\r\n");

        //遍历所有幻灯片并获取SmartArt图形.
        for (int i = 0; i < presentation.getSlides().getCount(); i++)
        {
            for (int j = 0; j < presentation.getSlides().get(i).getShapes().getCount(); j++)
            {
                if (presentation.getSlides().get(i).getShapes().get(j) instanceof ISmartArt)
                {
                    ISmartArt smartArt = (ISmartArt)presentation.getSlides().get(i).getShapes().get(j);

                    //提取SmartArt中的文本
                    for (int k = 0; k < smartArt.getNodes().getCount(); k++)
                    {
                        bw.write(smartArt.getNodes().get(k).getTextFrame().getText() + "\r\n");
                    }
                }
            }
        }
        bw.flush();
        bw.close();
        fw.close();

    }
}

效果图:

Java 提取 PowerPoint 中 SmartArt 图形的文本内容

本文介绍通过使用Spire.Doc for Java来复制Word文档中的页眉和页脚。

两个用于测试的Word文档如下,将左边Word文档中的页眉页脚复制到右边的文档:

Java 复制 Word 中的页眉页脚

import com.spire.doc.*;

public class CopyHeaderFooter {
    public static void main(String[] args) {
        //加载文档1
        Document doc1 = new Document();
        doc1.loadFromFile("input.docx");

        //获取section
        Section section1 = doc1.getSections().get(0);
        //获取文档1的页眉页脚
        HeaderFooter header = section1.getHeadersFooters().getHeader();
        HeaderFooter footer = section1.getHeadersFooters().getFooter();

        //加载文档2
        Document doc2 = new Document();
        doc2.loadFromFile("target.docx");

        //遍历文档2的section
        for (int i = 0; i< doc2.getSections().getCount();i++)
        {
            Section section2 = doc2.getSections().get(i);
            //遍历页眉中的对象
            for(int j = 0 ; j< header.getChildObjects().getCount();j++)
            {
                //获取页眉中的所有子对象
                Object object1 = header.getChildObjects().get(j);
                //复制文档1的页眉添加到文档2
                section2.getHeadersFooters().getHeader().getChildObjects().add(((DocumentObject) object1).deepClone());
            }

            //同理复制页脚
            for(int z = 0 ; z< footer.getChildObjects().getCount();z++)
            {
                Object object2 = footer.getChildObjects().get(z);
                section2.getHeadersFooters().getFooter().getChildObjects().add(((DocumentObject) object2).deepClone());
            }
        }

        //保存文档2
        doc2.saveToFile("CopyHeaderFooter.docx",FileFormat.Docx_2013);
        doc2.dispose();
    }
}

页眉页脚复制结果:

Java 复制 Word 中的页眉页脚