在处理数据时,我们经常会将数据存储在Excel文件中,并使用Java代码将其导入数据库。但是,在导入Excel文件时,往往会遇到公式无法正确导入到数据库中的问题。这篇文章将介绍如何解决这个问题。

一、问题描述

当我们将包含公式的Excel文件导入到数据库中时,公式的值并没有被正确导入,而是以公式本身的形式存储在数据库中。这是因为Excel中的公式是一种计算规则,而不是存储在单元格中的值。因此,在导入时,我们需要将公式转化为相应的值,并将其存储在数据库中。

二、解决方案

为了解决这个问题,我们需要使用Java中的一些库来帮助我们将Excel中的公式转化为相应的值,并将其导入到数据库中。以下是一个详细的步骤。

1. 读取Excel文件

我们需要使用Java中的Apache POI库来读取Excel文件。Apache POI是一款开源的Java库,可用于操作Microsoft Office文件。

使用以下代码读取Excel文件:

FileInputStream fileInputStream = new FileInputStream(new File(“文件路径”));

Workbook workbook = new XSSFWorkbook(fileInputStream);

Sheet sheet = workbook.getSheetAt(0);

2. 获取单元格值

使用以下代码获取单元格的值:

Cell cell = sheet.getRow(rowNum).getCell(colNum);

Object cellValue = null;

if(cell.getCellType() == CellType.NUMERIC){

cellValue = cell.getNumericCellValue();

}else if(cell.getCellType() == CellType.STRING){

cellValue = cell.getStringCellValue();

}else if(cell.getCellType() == CellType.FORMULA){

cellValue = cell.getCellFormula();

}

当单元格类型为公式时,以上代码将返回公式本身而不是计算后的值。

3. 计算公式

以下代码将公式转化为相应的值:

FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();

CellReference cellReference = new CellReference(rowNum, colNum);

Cell cell = sheet.getRow(cellReference.getRow()).getCell(cellReference.getCol());

CellValue cellValue = evaluator.evaluate(cell);

switch (cellValue.getCellType()) {

case Cell.CELL_TYPE_BOOLEAN:

return cellValue.getBooleanValue();

case Cell.CELL_TYPE_NUMERIC:

return cellValue.getNumberValue();

case Cell.CELL_TYPE_STRING:

return cellValue.getStringValue();

default:

return null;

}

4. 导入数据库

我们将通过JDBC连接数据库,并使用以下代码将数据导入数据库中:

Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);

PreparedStatement pstmt = conn.prepareStatement(“INSERT INTO table_name (col1, col2, …) VALUES (?, ?, …)”);

pstmt.setObject(colIndex, cellValue);

pstmt.executeUpdate();

这样就完成了将包含公式的Excel文件导入数据库的步骤。

三、

在处理数据时,使用Excel文件是很常见的。然而,在将Excel文件中包含公式的数据导入到数据库时,需要将公式转化为相应的值,并将其存储在数据库中。我们可以使用Java中的Apache POI库来读取Excel文件,并使用FormulaEvaluator计算公式。然后,通过JDBC连接数据库,并将数据导入数据库中。这样就能够轻松地。

相关问题拓展阅读:

怎样将Excel文件导入数据库(在P环境下Java代码)

利用隐此poi组件读灶亩迅出excel文件内部及各单元格 再插入到表的相应字段中。我一直是这么做的耐知。或者利用jxl组件。

呵呵,楼主既然思路都有了还怕写不出代码么?

你这个思路没有问题的!

可以把这个问题拆分成几个小问题,就简单多了。

之一是文件上传,可以参照Jakarta的FileUpload组件,其实也不一定要用这个,用普通的Post也就行了。

第二是Excel解析,用L或者POI都拦搏茄行

第三银或是数据保存,这个应该简单吧,一个循环,一行对应一条数据,写好了方法循环赋值调用就行简察了。

第四是查询和显示,这个更简单了,不用多说。

文件上传和Excel解析的例子网上很多的,改改就变自己的了,何必在这管别人要代码呢~

我只给你说下第二步怎么样吧,其他的你自己应该可以解决的。

通过使用第三方包jxl.jar,我以前导过数据,也是解析Excel,将Excel中的数据导入数据库中,这个包很好下,如果找不到可以留下邮箱

//程序说明: 要导入jxl.jar到Classpath中。

import jxl.*;

import java.io.*;

import jxl.write.*;

/**

* java读取Excel表格,拷贴心、更新Excel工作薄

*/

public class Test1 {

public static void main(String args) {

jxl.Workbook rwb = null;

try{

//构建Workbook对象 只郑缓读Workbook对象

//直接从本地文件创建Workbook

//从输入流创建Workbook

InputStream is = new FileInputStream(”

rwb = Workbook.getWorkbook(is);

//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中

//Sheet的下标喊薯模是从0开始的

//获取之一张Sheet表

Sheet rs = rwb.getSheet(0);

//获取Sheet表中所包含的总列数

int rsColumns = rs.getColumns();

//获取Sheet表中所包含的总行数

int rsRows = rs.getRows();

//获取指这下单元格的对象引用

for(int i=0;i

for(int j=0;j

Cell cell = rs.getCell(j,i);

System.out.print(cell.getContents()+” “);

}

System.out.println();

}

//利用已经创建的Excel工作薄创建新的可写入的Excel工作薄

jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(”

//读取之一张工作表

jxl.write.WritableSheet ws = wwb.getSheet(0);

//获取之一个单元格对象

jxl.write.WritableCell wc = ws.getWritableCell(0, 0);

//决断单元格的类型,做出相应的转化

if (wc.getType() == CellType.LABEL) {

Label l = (Label) wc;

l.setString(“The value has been modified.”);

}

//写入Excel对象

wwb.write();

wwb.close();

}catch(Exception e){

e.printStackTrace();

}

finally{

//操作完成手晌时,关闭对象,翻译占用的内存空间

rwb.close();

}

}

}

关于java xls导入数据库 公式问题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


新软师兄 » 解决Java XLS导入数据库公式问题 (java xls导入数据库 公式问题)
50T免费网盘资源大集合【持续更中~~~~】:点击查看

dase kand pornhan.mobi xvideo desi gay pcso 2pm result today pinoytvfriends.com where i can watch bad romeo كلام فى النيك wfporn.com قصص محارم حديثة busporn porngugu.mobi indian sexx vedios sex ka video noticieroporno.com himachal pradesh sex com
nero hentai hentaitgp.com ламия хентай www.mom xxx.com alohaporn.me sahara knite mature fucking tubepatrolporn.com bhabi sex indian girl sex gotporn.mobi xnxx family strocks ang probinsyano july 20 2022 full episode youtube pilipinoteleserye.com ano ang pambansang sasakyan ng pilipinas
احلي سكس محارم pornxporn.org نيك فلاحى multi.xnxx alohaporn.net telugu sex chart سكس قصيرات arabysexy.org نيك نقاب www assames sex com umora.info desi sexy bhabi 8teenx bukaporn.com india hot sex videos