java用POI *** 作Excel时当遍历单元格时如何获取当前单元个的具体坐标

java用POI *** 作Excel时当遍历单元格时如何获取当前单元个的具体坐标,第1张

首先先根据sheet找到行

row = sheetgetRow(rowIndex);

然后找

cell = rowgetCell(1);

这样就去到当前的B1了,

cellgetStringCellValue()

就能取到当前的单元格的value

responsesetContentType("application/vndms-excel;charset=utf-8");

String

realPath

=

getServletContext()getRealPath("/");//

获取项目绝对路径

FileInputStream

myxls

=

new

FileInputStream(realPath

+

"gkxlt");

POIFSFileSystem

fs

=

new

POIFSFileSystem(myxls);

HSSFWorkbook

wb

=

new

HSSFWorkbook(fs);

//

FileOutputStream

out

=

new

FileOutputStream("d:/excel/国库附件xls");

HSSFSheet

sheet

=

wbgetSheetAt(3);

//

获得第三个工作薄(2008工作薄)

//

填充上面的表格,数据需要从数据库查询

HSSFRow

row5

=

sheetgetRow(4);

//

获得工作薄的第五行

HSSFCell

cell54

=

row5getCell(3);//

获得第五行的第四个单元格

cell54setCellValue("测试纳税人名称");//

给单元格赋值

程序中打印出的i就是的索引位置

if(pTablehasPicture(cr)){

//获取路径

picpath=thisreadPicture(pTable, cr);

Systemoutprintln("索引"+i);

currentChar=crtext()charAt(0);

tempString+=picpath+"<br/>";

}else {

如果你使用的是POI那么就是下面的方法

//根据传过来的文件名创建workbook

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));

//获得excel文件的sheet数量

int sn = wbgetNumberOfSheets();

//依次处理sheet表单

for (int i = 0; i < sn; i++) {

HSSFSheet sheet = wbgetSheetAt(i);

//获得第i张表单的所有行数

for (int j = 0; j < sheetgetLastRowNum(); j++) {

//获得第j行

HSSFRow row = sheetgetRow(j);

//获得该行的cell数量

for (int k = 0; k < rowgetLastCellNum(); k++) {

//☆☆根据cell号获得cell的所有属性☆☆

HSSFCell cell = rowgetCell((short) k);

//然后你就得到值啦

Systemoutprintln(cellgetRichStringCellValue());

当然也可以通过匹配值得到地址

1、插件申请接入:

在腾讯公众平台中, “微信小程序官方后台-设置-第三方服务-插件管理” 里点击 “添加插件”,搜索 “腾讯位置服务地图选点” 申请,审核通过后,小程序开发者可在小程序内使用该插件。

2、引入插件包: 地图选点appId: wx76a9a06e5b4e693e (点击浏览插件最新版本)

3、设置定位授权:

地图选点插件需要小程序提供定位授权才能够正常使用定位功能:

4、使用插件:

插件页面调用示例:

5、插件返回数据

POI信息并非普通的信息,有空间属性,由于它的采集成本较高,一般的服务网站都是不公开的。所以没有办法采集。

POI是“Point of Interest”的缩写,中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。

 

结构:

HSSF - 提供读写Microsoft Excel格式档案的功能。

XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。

HWPF - 提供读写Microsoft Word格式档案的功能。

HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

HDGF - 提供读写Microsoft Visio格式档案的功能。

  下面的代码是向Excel中插入多张的例子:

public static void main(String[] args) {

        FileOutputStream fileOut = null;

        BufferedImage bufferImg = null;

        BufferedImage bufferImg1 = null;

        try {

            // 先把读进来的放到一个ByteArrayOutputStream中,以便产生ByteArray

            // 读入1

            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();

            bufferImg = ImageIOread(new File("d://test11jpg"));

            ImageIOwrite(bufferImg, "jpg", byteArrayOut);

            

            // 读入2

            ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream();

            bufferImg1 = ImageIOread(new File("d://test22png"));

            ImageIOwrite(bufferImg1, "png", byteArrayOut1);

            // 创建一个工作薄

            HSSFWorkbook wb = new HSSFWorkbook();

            HSSFSheet sheet1 = wbcreateSheet("test picture");

            HSSFPatriarch patriarch = sheet1createDrawingPatriarch();

            HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,

                    (short) 1, 1, (short) 5, 5);

            anchorsetAnchorType(3);

            HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 255, 255,

                    (short) 6, 6, (short) 10, 10);

            anchor1setAnchorType(3);

            // 插入1

            patriarchcreatePicture(anchor, wbaddPicture(byteArrayOut

                    toByteArray(), HSSFWorkbookPICTURE_TYPE_JPEG));

            // 插入2

            patriarchcreatePicture(anchor1, wbaddPicture(byteArrayOut1

                    toByteArray(), HSSFWorkbookPICTURE_TYPE_PNG));

            fileOut = new FileOutputStream("d:/workbookxls");

            // 写入excel文件

            wbwrite(fileOut);

            fileOutclose();

        } catch (IOException io) {

            ioprintStackTrace();

            Systemoutprintln("erorr : " + iogetMessage());

        } finally {

            if (fileOut != null) {

                try {

                    fileOutclose();

                } catch (IOException e) {

                    eprintStackTrace();

                }

            }

        }

    }

 

这样执行后的效果如下:(完全按照HSSFClientAnchor设置的参数显示)

这边的效果没有保持原来的倍率,有点失真了,是因为HSSFClientAnchor(0, 0, 255, 255, (short) 1, 1, (short) 5, 5); 这个构造函数的原因。

HSSFClientAnchor构造函数参数的意义如下:

@param dx1   the x coordinate within the first cell

     @param dy1   the y coordinate within the first cell

     @param dx2   the x coordinate within the second cell

     @param dy2   the y coordinate within the second cell

     @param col1  the column (0 based) of the first cell

     @param row1  the row (0 based) of the first cell

     @param col2  the column (0 based) of the second cell

     @param row2  the row (0 based) of the second cell

其中dx1,dy1这个点是定义在开始cell中的起始位置。这个点是开始cell的左上为原点,相对比率来确定的。不是绝对坐标

dx2,dy2这个点是定义在终了cell的终了位置。这个点是终了cell的左上为原点,相对比率来确定的。不是绝对坐标。

col1,row1是定义开始cell。

col2,row2是定义终了cell。

如果我们想要保持原始的大小,改一下上面代码中的下面部分就可以了。

修改前:patriarchcreatePicture(anchor, wbaddPicture(byteArrayOuttoByteArray(), HSSFWorkbookPICTURE_TYPE_JPEG));

修改后:patriarchcreatePicture(anchor, wbaddPicture(byteArrayOut

                    toByteArray(), HSSFWorkbookPICTURE_TYPE_JPEG))resize(1);

修改后效果如下:

其中resize是放大或缩小的函数。用了这个函数后,HSSFClientAnchor构造函数中的显示的终了cell位置就不起作用了。

PS:抠门货,一点财富值都不舍得掏啊。。。。鄙视你。

以上就是关于java用POI *** 作Excel时当遍历单元格时如何获取当前单元个的具体坐标全部的内容,包括:java用POI *** 作Excel时当遍历单元格时如何获取当前单元个的具体坐标、java poi 如何获取获得excel的总的行数和列数、poi读取word文档,如何获取图片的位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10080849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存