繁体   English   中英

在JAVA中使用Apache POI格式化Excel电子表格

[英]Formatting Excel Spreadsheet using Apache POI in JAVA

我的意图是为电子表格数据的内容设置边框,同时保持单元格的其他属性不变。

下面的代码格式化(设置边框)整个电子表格,而不是仅格式化电子表格中存在实际数据的部分。

是否有理由将格式设置应用于整个电子表格? 有办法克服吗?

package learning.selenium.self.begining;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Iterator;

import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class testing {

    public static void main(String[] args) throws Exception {
        File myFile = new File("TestFile.xlsx");
        Workbook myWorkbook = WorkbookFactory.create(new FileInputStream(myFile));
        Sheet mySheet = myWorkbook.getSheetAt(0);

        Iterator<Row> r = mySheet.rowIterator();
        while (r.hasNext()) {
            Row myR = r.next();
            Iterator<Cell> c = myR.cellIterator();
            while (c.hasNext()) {
                Cell myC = c.next();
                System.out.println("precessing (" + myR.getRowNum() + "," + myC.getColumnIndex() + ")");
                CellStyle s = myC.getCellStyle();
                s = myC.getCellStyle();
                s.setBorderBottom(BorderStyle.THIN);
                s.setBorderTop(BorderStyle.THIN);
                s.setBorderLeft(BorderStyle.THIN);
                s.setBorderRight(BorderStyle.THIN);
                myC.setCellStyle(s);
            }
        }

        FileOutputStream fos = new FileOutputStream(myFile);
        myWorkbook.write(fos);
        fos.close();
    }
}

我不知道这是否有帮助,但值得检查

CellRangeAddress range= new CellRangeAddress(firstrow, lastrow, firstcol, lastcol); 

RegionUtil.setBorderBottom(BorderStyle.THIN, range, sheet);

您可以为其他边界设置相同的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM