java如何实现用POI输出Excel的时候,设置背景n行有色,n行无色,按顺序循环下去,怎么搞呢?

Python015

java如何实现用POI输出Excel的时候,设置背景n行有色,n行无色,按顺序循环下去,怎么搞呢?,第1张

使用 poi ,具体实现

HSSFCellStyle style = null

// 创建表头style

HSSFCellStyle cellStyleTitle = workbook.createCellStyle()

cellStyleTitle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND)// 填充单元格

cellStyleTitle.setFillForegroundColor(HSSFColor.YELLOW.index)

cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER)// //居中显示

HSSFRow titleRow = sheet.createRow(0)

for (int i = 0i <titles.lengthi++) {

HSSFCell cell = titleRow.createCell(i)

// cell.setCellStyle(createCellColorStyle(workbook))

cell.setCellStyle(cellStyleTitle)

cell.setCellValue(titles[i])// 给单元格赋值

}

不知道你是具体读取Word里面的什么元素,下面以读取文字和图片为例吧,两个代码示例,你参考看看:

读取文本

import com.spire.doc.Document

import java.io.FileWriter

import java.io.IOException

public class ExtractText {

public static void main(String[] args) throws IOException {

//加载Word文档

Document document = new Document()

document.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.docx")

//获取文档中的文本保存为String

String text=document.getText()

//将String写入Txt文件

writeStringToTxt(text,"ExtractedText.txt")

}

public static void writeStringToTxt(String content, String txtFileName) throws IOException {

FileWriter fWriter= new FileWriter(txtFileName,true)

try {

fWriter.write(content)

}catch(IOException ex){

ex.printStackTrace()

}finally{

try{

fWriter.flush()

fWriter.close()

} catch (IOException ex) {

ex.printStackTrace()

}

}

}

}

2. 读取图片

import com.spire.doc.Document

import com.spire.doc.documents.DocumentObjectType

import com.spire.doc.fields.DocPicture

import com.spire.doc.interfaces.ICompositeObject

import com.spire.doc.interfaces.IDocumentObject

import javax.imageio.ImageIO

import java.awt.image.BufferedImage

import java.io.File

import java.io.IOException

import java.util.ArrayList

import java.util.LinkedList

import java.util.List

import java.util.Queue

public class ExtractImages {

public static void main(String[] args) throws IOException {

//加载Word文档

Document document = new Document()

document.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.docx")

//创建Queue对象

Queue nodes = new LinkedList()

nodes.add(document)

//创建List对象

List images = new ArrayList()

//遍历文档中的子对象

while (nodes.size() >0) {

ICompositeObject node = nodes.poll()

for (int i = 0i <node.getChildObjects().getCount()i++) {

IDocumentObject child = node.getChildObjects().get(i)

if (child instanceof ICompositeObject) {

nodes.add((ICompositeObject) child)

//获取图片并添加到List

if (child.getDocumentObjectType() == DocumentObjectType.Picture) {

DocPicture picture = (DocPicture) child

images.add(picture.getImage())

}

}

}

}

//将图片保存为PNG格式文件

for (int i = 0i <images.size()i++) {

File file = new File(String.format("output/图片-%d.png", i))

ImageIO.write(images.get(i), "PNG", file)

}

}

}

注意这里使用的jar包是spire.doc.jar,需要在java程序中先导入jar文件。

1、下载poi相关jar,maven的集成如下:(把${poi.version}替换成你要的版本)

 <dependency>

            <groupId>org.apache.poi</groupId>

            <artifactId>poi</artifactId>

            <version>${poi.version}</version>

            <scope>provided</scope>

        </dependency>

        <dependency>

            <groupId>org.apache.poi</groupId>

            <artifactId>poi-ooxml</artifactId>

            <version>${poi.version}</version>

            <scope>provided</scope>

        </dependency>

        <dependency>

            <groupId>org.apache.poi</groupId>

            <artifactId>poi-ooxml-schemas</artifactId>

            <version>${poi.version}</version>

            <scope>provided</scope>

        </dependency>

2、根据poi相关api读取sheet、row、cell,获得excel的数据

封装row的对象,即每一行数据为一个对象,每个cell为对象里的一个属性,

整个sheet的数据装进集合里;

3、处理数据,可以对数据进行验证或其他操作;

4、写数据库操作。