POI在获取单元格对象时为空,这种情况会在什么情况下为空。因为我的模版当中很多单元格里面是没值的

POI在获取单元格对象时为空,这种情况会在什么情况下为空。因为我的模版当中很多单元格里面是没值的,第1张

(“应用程序/ vndms-EXCEL,字符集= UTF-8”);

?弦乐的真实路径= getServletContext()。了getRealPath(“/”);/ /获取项目的绝对路径

?FileInputStream类myxls =新的文件输入流(真实路径+“gkxlt”);

?POIFSFileSystem FS =新POIFSFileSystem(myxls);

?HSSFWorkbook WB =新HSSFWorkbook(FS);

/ /文件输出流输出=新的文件输出流(“D :/ EXCEL /库存附件。XLS”);

?HSSFSheet表= wbgetSheetAt(3)/ /第三个工作簿(工作簿)

?/ /填充表中,数据从数据库中查询

?HSSFRow row5 = sheetgetRow(4); / /获得第五行的工作簿

?HSSFCell cell54 = row5getCell(3);/ /第四单元的第五行

,?cell54setCellValue(“纳税人名称”);/ /单元分配

// 创建工作簿

Workbook workBook = new HSSFWorkbook();

// 创建工作表

Sheet sheet = workBookcreateSheet("new");

// 创建行,Excel中的第一行在poi中索引为0

Row row = sheetcreateRow(0);

// 创建单元格,Excel中的第一列在poi中索引为0

Cell cell = rowcreateCell(0);

// 设置单元格内容

cellsetCellValue("行号/列号");

row = sheetcreateRow(2);

cell = rowcreateCell(4);

// 设置单元格类型为公式

cellsetCellType(HSSFCellCELL_TYPE_FORMULA);

// 设置公式内容

cellsetCellFormula("B3C3");

// 将工作簿保存到文件

FileOutputStream fos = new FileOutputStream("c:/textxls");

workBookwrite(fos);

fosclose();

原因分析:

 ADO和SSIS的Excel源对数剧列的长度的判定存在问题。

解决方案一:

把EXCEL转换成CSV格式,然后使用平面文件源导入数据库。

需要注意两点:

1、输出列长度需要手动修改。

2、注意不同语言造成的Unicode字符转换问题,必要时先切换系统语言,再作转换。

解决方案二:

将注册表中

Jet引擎

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\40\Engines\Excel

如果是:ACE引擎

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\120\Access Connectivity Engine\Engines\Excel

下的TypeGuessRows 项的值设置为0

Windows server 2003 系统注册表中,JET项位于HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftWow64Node\下

原因是驱动默认情况下根据列的前8行数据判定列长度,修改为0后需要检查整列数据来判定列长度,超过255个字符默认为ntext格式,少于255个字符则默认为nvarchar(255)。

添加一个数据流在数据流里添加一个OLEDB源

新建一个excel的oledb源在这里就不说了

只需要将Provider设置为Microsoft Ace Oledb然后选择Excel文件

然后设置Extended Properties属性为Excel 120;HDR=YES

工作簿(8)WorkbooksAdd()'创建一个新的工作簿(9)Workbooks(“book1xls”)Activate'激活名为book1的工作簿(10)ThisWorkbookSave'保存工作簿(11)ThisWorkbookclose'关闭当前工作簿(12)ActiveWorkbookSheetsCount'获取活动工作薄中工作表数(13)ActiveWorkbookname'返回活动工作薄的名称(14)ThisWorkbookName‘返回当前工作簿名称ThisWorkbookFullName‘返回当前工作簿路径和名称(15)ActiveWindowEnableResize=False‘禁止调整活动工作簿的大小(16)ApplicationWindowArrangexlArrangeStyleTiled‘将工作簿以平铺方式排列(17)ActiveWorkbookWindowState=xlMaximized‘将当前工作簿最大化

以上就是关于POI在获取单元格对象时为空,这种情况会在什么情况下为空。因为我的模版当中很多单元格里面是没值的全部的内容,包括:POI在获取单元格对象时为空,这种情况会在什么情况下为空。因为我的模版当中很多单元格里面是没值的、POI的 *** 作EXCEL的一个简单任务、如何使用Apache POI 3.6来获得在一个Excel工作表超过255列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9717863.html

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

发表评论

登录后才能评论

评论列表(0条)

保存