poi方法setCellFormula报错:not implemented yet

poi方法setCellFormula报错:not implemented yet,第1张

输入代码解决:

publicclassArith{

privatestaticfinalintDEF_DIV_SCALE=10;

/

两个Double数相加

@paramv1

@paramv2

@returnDouble

/

publicstaticDoubleadd(Doublev1,Doublev2){

BigDecimalb1=newBigDecimal(v1toString());

BigDecimalb2=newBigDecimal(v2toString());

returnb1add(b2)doubleValue();

}

/

两个Double数相减

@paramv1

@paramv2

@returnDouble

/

publicstaticDoublesub(Doublev1,Doublev2){

BigDecimalb1=newBigDecimal(v1toString());

BigDecimalb2=newBigDecimal(v2toString());

returnb1subtract(b2)doubleValue();

扩展资料

POI功能可以让企业获得独家专享的唯一地址, 呈现方式就是地图中的定位图标。

无论是车载导航还是手机导航,如今市面上的导航都有自己的POI信息点,导航地图中POI信息点的多少以及信息的准确程度和信息更新速度,都严重影响到一款导航的使用情况。

POI的采集是一个非常费时费事的工作,对一个地理信息系统来说,POI的数量在一定程度代表着整个系统的价值。

public static void test() throws IOException{

FileInputStream readFile = new FileInputStream("C:\\testxls"); //此xls文件只有第4行有输入值

HSSFWorkbook wb = new HSSFWorkbook(readFile);

HSSFSheet st = wbgetSheetAt(0);

HSSFRow row0 = stgetRow(0); //excel文件创未建过第0行 row0为null

HSSFRow row1 = stgetRow(1); //excel文件创未建过第1行 row1为null

HSSFRow row3 = stgetRow(3); //excel文件创建过第3行 有值

HSSFRow row6 = stgetRow(6); //excel文件创未建过第6行 row6为null

HSSFCell cell = row3getCell(6);

Systemoutprintln(cellgetStringCellValue());

}

看出错信息,需要用XSSF处理,是你读取的文件格式不对吧,获取的file是XML文件吗?可以加一句Systemoutpringtln(filegetName())看看,poi是处理excel的。

两个原因:

1你的excel模版本身有问题,可以尝试新建一个模版。

2你的excel使用了一些POI不支持的函数。

解决办法:

另存是由excel重写了完整的文件,可以解决问题。

关闭文件例子:

FileOutputStream os = new FileOutputStream("workbookxls");

wbwrite(os);

osclose();

在保护状态下execl的格式有可能正在被使用,你这边修改,准确说是线程冲突,一般excel值会作为导出文件的模板,是不会编辑的。你可以在读的时候判断execl是否正在被使用。

下面的代码问题,你可以参考

package comhwtglmfcommon;

import javaioIOException;

import javaioOutputStream;

import javautilArrayList;

import javautilList;

import javaxservlet>

import orgapachepoihssfusermodelHSSFCell;

import orgapachepoihssfusermodelHSSFCellStyle;

import orgapachepoihssfusermodelHSSFFont;

import orgapachepoihssfusermodelHSSFRichTextString;

import orgapachepoihssfusermodelHSSFRow;

import orgapachepoihssfusermodelHSSFSheet;

import orgapachepoihssfusermodelHSSFWorkbook;

import orgapachepoihssfutilCellRangeAddress;

import orgapachepoihssfutilHSSFColor;

/

导出Excel公共方法

@version 10

@author wangcp

/

public class ExportExcel extends BaseAction {

//显示的导出表的标题

private String title;

//导出表的列名

private String[] rowName ;

private List<Object[]> dataList = new ArrayList<Object[]>();

>

//构造方法,传入要导出的数据

public ExportExcel(String title,String[] rowName,List<Object[]> dataList){

thisdataList = dataList;

thisrowName = rowName;

thistitle = title;

}

/

导出数据

/

public void export() throws Exception{

try{

HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿对象

HSSFSheet sheet = workbookcreateSheet(title); // 创建工作表

// 产生表格标题行

HSSFRow rowm = sheetcreateRow(0);

HSSFCell cellTiltle = rowmcreateCell(0);

//sheet样式定义getColumnTopStyle()/getStyle()均为自定义方法 - 在下面 - 可扩展

HSSFCellStyle columnTopStyle = thisgetColumnTopStyle(workbook);//获取列头样式对象

HSSFCellStyle style = thisgetStyle(workbook); //单元格样式对象

sheetaddMergedRegion(new CellRangeAddress(0, 1, 0, (rowNamelength-1)));

cellTiltlesetCellStyle(columnTopStyle);

cellTiltlesetCellValue(title);

// 定义所需列数

int columnNum = rowNamelength;

HSSFRow rowRowName = sheetcreateRow(2); // 在索引2的位置创建行(最顶端的行开始的第二行)

// 将列头设置到sheet的单元格中

for(int n=0;n<columnNum;n++){

HSSFCell cellRowName = rowRowNamecreateCell(n); //创建列头对应个数的单元格

cellRowNamesetCellType(HSSFCellCELL_TYPE_STRING); //设置列头单元格的数据类型

HSSFRichTextString text = new HSSFRichTextString(rowName[n]);

cellRowNamesetCellValue(text); //设置列头单元格的值

cellRowNamesetCellStyle(columnTopStyle); //设置列头单元格样式

}

//将查询出的数据设置到sheet对应的单元格中

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

Object[] obj = dataListget(i);//遍历每个对象

HSSFRow row = sheetcreateRow(i+3);//创建所需的行数

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

HSSFCell cell = null; //设置单元格的数据类型

if(j == 0){

cell = rowcreateCell(j,HSSFCellCELL_TYPE_NUMERIC);

cellsetCellValue(i+1);

}else{

cell = rowcreateCell(j,HSSFCellCELL_TYPE_STRING);

if(!""equals(obj[j]) && obj[j] != null){

cellsetCellValue(obj[j]toString()); //设置单元格的值

}

}

cellsetCellStyle(style); //设置单元格样式

}

}

//让列宽随着导出的列长自动适应

for (int colNum = 0; colNum < columnNum; colNum++) {

int columnWidth = sheetgetColumnWidth(colNum) / 256;

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

HSSFRow currentRow;

//当前行未被使用过

if (sheetgetRow(rowNum) == null) {

currentRow = sheetcreateRow(rowNum);

} else {

currentRow = sheetgetRow(rowNum);

}

if (currentRowgetCell(colNum) != null) {

HSSFCell currentCell = currentRowgetCell(colNum);

if (currentCellgetCellType() == HSSFCellCELL_TYPE_STRING) {

int length = currentCellgetStringCellValue()getBytes()length;

if (columnWidth < length) {

columnWidth = length;

}

}

}

}

if(colNum == 0){

sheetsetColumnWidth(colNum, (columnWidth-2) 256);

}else{

sheetsetColumnWidth(colNum, (columnWidth+4) 256);

}

}

if(workbook !=null){

try

{

String fileName = "Excel-" + StringvalueOf(SystemcurrentTimeMillis())substring(4, 13) + "xls";

String headStr = "attachment; filename=\"" + fileName + "\"";

response = getResponse();

responsesetContentType("APPLICATION/OCTET-STREAM");

responsesetHeader("Content-Disposition", headStr);

OutputStream out = responsegetOutputStream();

workbookwrite(out);

}

catch (IOException e)

{

eprintStackTrace();

}

}

}catch(Exception e){

eprintStackTrace();

}

}

/

列头单元格样式

/

public HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {

// 设置字体

HSSFFont font = workbookcreateFont();

//设置字体大小

fontsetFontHeightInPoints((short)11);

//字体加粗

fontsetBoldweight(HSSFFontBOLDWEIGHT_BOLD);

//设置字体名字

fontsetFontName("Courier New");

//设置样式;

HSSFCellStyle style = workbookcreateCellStyle();

//设置底边框;

stylesetBorderBottom(HSSFCellStyleBORDER_THIN);

//设置底边框颜色;

stylesetBottomBorderColor(HSSFColorBLACKindex);

//设置左边框;

stylesetBorderLeft(HSSFCellStyleBORDER_THIN);

//设置左边框颜色;

stylesetLeftBorderColor(HSSFColorBLACKindex);

//设置右边框;

stylesetBorderRight(HSSFCellStyleBORDER_THIN);

//设置右边框颜色;

stylesetRightBorderColor(HSSFColorBLACKindex);

//设置顶边框;

stylesetBorderTop(HSSFCellStyleBORDER_THIN);

//设置顶边框颜色;

stylesetTopBorderColor(HSSFColorBLACKindex);

//在样式用应用设置的字体;

stylesetFont(font);

//设置自动换行;

stylesetWrapText(false);

//设置水平对齐的样式为居中对齐;

stylesetAlignment(HSSFCellStyleALIGN_CENTER);

//设置垂直对齐的样式为居中对齐;

stylesetVerticalAlignment(HSSFCellStyleVERTICAL_CENTER);

return style;

}

/

列数据信息单元格样式

/

public HSSFCellStyle getStyle(HSSFWorkbook workbook) {

// 设置字体

HSSFFont font = workbookcreateFont();

//设置字体大小

//fontsetFontHeightInPoints((short)10);

//字体加粗

//fontsetBoldweight(HSSFFontBOLDWEIGHT_BOLD);

//设置字体名字

fontsetFontName("Courier New");

//设置样式;

HSSFCellStyle style = workbookcreateCellStyle();

//设置底边框;

stylesetBorderBottom(HSSFCellStyleBORDER_THIN);

//设置底边框颜色;

stylesetBottomBorderColor(HSSFColorBLACKindex);

//设置左边框;

stylesetBorderLeft(HSSFCellStyleBORDER_THIN);

//设置左边框颜色;

stylesetLeftBorderColor(HSSFColorBLACKindex);

//设置右边框;

stylesetBorderRight(HSSFCellStyleBORDER_THIN);

//设置右边框颜色;

stylesetRightBorderColor(HSSFColorBLACKindex);

//设置顶边框;

stylesetBorderTop(HSSFCellStyleBORDER_THIN);

//设置顶边框颜色;

stylesetTopBorderColor(HSSFColorBLACKindex);

//在样式用应用设置的字体;

stylesetFont(font);

//设置自动换行;

stylesetWrapText(false);

//设置水平对齐的样式为居中对齐;

stylesetAlignment(HSSFCellStyleALIGN_CENTER);

//设置垂直对齐的样式为居中对齐;

stylesetVerticalAlignment(HSSFCellStyleVERTICAL_CENTER);

return style;

}

}

苹果13网络开着定位开启一扫码为什么获取位置失败您好亲,!答:苹果13开了定位还是找不到位置,这是因为手机未接入网络,以及GPS没有定位,解决办法如下1.在桌面上找到设置,然后单击打开2.在设置界面,单击蜂窝移动网络3.单击打开蜂窝数据后面的开关4.接着,重新回到桌面找到“设置”并点击进入5.在列表菜单中单击“隐私”,然后进入6.第一项是“定位服务”,这是当前关闭的位置,单击更改7.然后,点击打开共享我的位置8.将共享我的位置后面的按钮打开即可9、回到桌面,再次找到查找朋友并打开10、最后,就可以成功打开,不会出现无法连接的提示了希望可以帮到您哦!!!

问题还没解决?快来咨询专业答主~

苹果13网络开着定位开启一扫码为什么获取位置失败

在线

1172位答主在线答

服务保障

专业

响应快

马上提问

苹果手机开了定位还扫一码通获取位置失败

81位网友正在问

苹果手机开了定位还扫一码通获取位置失败

近期最多人问

苹果手机开了定位还扫一码通获取位置失败

最新提问

抢首赞

分享评论

周口彩钢翻新漆专享优惠!问一圈后再来找我,同行底价,质量好!

彩钢瓦翻新漆广告

百万级手镯翡翠成品,翡翠原石仅要10%的价格,主播现场开好翡翠

熠熠珠宝店广告

苹果13网络开着定位开启一扫码为什么获取位置失败

小琴导师在线解答

行业答主

苹果13网络开着定位开启一扫码为什么获取位置失败可能是因为设置了禁止获取位置。建议去手机设置中将GPS网络打开,保持打开状态。也有可能是因为网络差,获取不了。

以上就是关于poi方法setCellFormula报错:not implemented yet全部的内容,包括:poi方法setCellFormula报错:not implemented yet、poi 为什么获取的row为空啊 在线等 谢谢啦、有即懂Java又懂Cognos8的进来帮个忙,我用Javapoi读取由Cognos8生成的Excel00、02、07的三种文件都报错!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存