java中mypoiexception,poi3.8读取 Excel2007中含有超链接的单元格 会出错。求解决!该怎么处理...

poi3.8读取 Excel2007中含有超链接的单元格 会出错。求解决!

public static void readExcel2007()

{

InputStream in = null;

try

{

in = new FileInputStream("d:\\b.xlsx");

// 创建work

Workbook work = new XSSFWorkbook(in);//主要在这里报错

// 得到第一个sheet

Sheet sheet = work.getSheetAt(0);

// 获取总行数

int rowNum = sheet.getLastRowNum();

Row row = null;

// 循环每一行

for (int i = 1; i <= rowNum; i++)

{

row = sheet.getRow(i);

if (null == row)

{

continue;

}

Cell cell = row.getCell(0);

if (cell != null)

{

System.out.println(cell.getStringCellValue());

}

}

}

catch (Exception e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

readExcel2003();

}

异常信息:

java.lang.IllegalStateException: The hyperlink for cell A2 references relation rId1, but that didn't exist!

at org.apache.poi.xssf.usermodel.XSSFHyperlink.(XSSFHyperlink.java:70)

at org.apache.poi.xssf.usermodel.XSSFSheet.initHyperlinks(XSSFSheet.java:250)

at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:203)

at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:175)

at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:227)

at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159)

at org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:181)

at ImportExcel.ImportExcelDemo.readExcel2007(ImportExcelDemo.java:73)

at ImportExcel.ImportExcelDemo.main(ImportExcelDemo.java:103)

Excel文件: 其中aa@aa.com是超链接(也不知道为什么,打上去自动就是超链接)

Account Name

aa@aa.com 张杰

jjke gf

------解决方案--------------------

在Excel里面 $这个符号是有特殊含义的,加入你的单元格里面可能不小心$引用:

我怀疑是你做实验的Excel文件的问题,同样的代码我的一点问题都没有

你重新建一个新的excel,然后加一个个人邮箱地址试试

引用:

引用:

你能不能参考我给你写的代码,以这个为基础改,这个对@ $$% 处理没有任何问题

我已经说了N遍……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将从txt文件读取的数据以表格格式输出,你可以使用Java的第三方库Apache POI来实现。以下是实现的步骤: 1. 导入Apache POI库 在pom.xml文件添加以下依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> ``` 2. 读取txt文件的数据 使用Java的FileReader和BufferedReader类来读取txt文件的数据,并将其存储在一个二维数组。 ```java File file = new File("data.txt"); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); List<String[]> data = new ArrayList<>(); String line; while ((line = br.readLine()) != null) { String[] row = line.split(","); data.add(row); } br.close(); fr.close(); ``` 3. 创建Excel文件并写入数据 使用Apache POI的Workbook、Sheet和Row类来创建Excel文件,并将从txt文件读取的数据写入到Excel文件。 ```java Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet(); int rowNum = 0; for (String[] rowData : data) { Row row = sheet.createRow(rowNum++); int cellNum = 0; for (String cellData : rowData) { row.createCell(cellNum++).setCellValue(cellData); } } FileOutputStream outputStream = new FileOutputStream("data.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); ``` 4. 输出表格格式的数据 使用Apache POICellStyle和Font类来设置单元格的样式和字体,从而输出表格格式的数据。 ```java Sheet sheet = workbook.getSheetAt(0); CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setBold(true); style.setFont(font); for (Row row : sheet) { for (Cell cell : row) { cell.setCellStyle(style); } } FileOutputStream outputStream = new FileOutputStream("data.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); ``` 这样,你就可以将从txt文件读取的数据以表格格式输出到Excel文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值