乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>php</em>excel怎么读取公式的值-excel函数 php,excel函数怎么用

<em>php</em>excel怎么读取公式的值-excel函数 php,excel函数怎么用

作者:乔山办公网日期:

返回目录:excel表格制作


1 package hrds.zpf.poi;
2
3 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
4 import org.apache.poi.hssf.usermodel.HSSFSheet;
5 import org.apache.poi.hssf.usermodel.HSSFRow;
6 import org.apache.poi.hssf.usermodel.HSSFCell;
7
8 import java.io.*;
9
10 public class FormulaToString {
11
12 /**
13 * @param args
14 */
15 public void fileInput() throws IOException {
16
17 HSSFWorkbook hw = new HSSFWorkbook(new FileInputStream(
18 "d:/My Documents/Desktop/poi.xls"));
19 HSSFSheet hsheet = hw.getSheet("poi test");
20 HSSFRow hrow = hsheet.getRow(0);
21 HSSFCell hcell = hrow.getCell(0);
22 String cellValue = this.getCellValue(hcell);
23 System.out.println(cellValue);
24
25 }
26
27 public String getCellValue(HSSFCell cell) {
28 String value = null;
29 if (cell !e799bee5baa6e78988e69d83362= null) {
30 switch (cell.getCellType()) {
31 case HSSFCell.CELL_TYPE_FORMULA:
32 // cell.getCellFormula();
33 try {
34 value = String.valueOf(cell.getNumericCellValue());
35 } catch (IllegalStateException e) {
36 value = String.valueOf(cell.getRichStringCellValue());
37 }
38 break;
39 case HSSFCell.CELL_TYPE_NUMERIC:
40 value = String.valueOf(cell.getNumericCellValue());
41 break;
42 case HSSFCell.CELL_TYPE_STRING:
43 value = String.valueOf(cell.getRichStringCellValue());
44 break;
45 }
46 }
47
48 return value;
49 }
50
51 public static void main(String[] args) {
52 try {
53 // TODO Auto-generated method stub
54 FormulaToString fts = new FormulaToString();
55 fts.fileInput();
56 } catch (IOException e) {
57 e.printStackTrace();
58 }
59 }
60
61 }

我有以下的Excel文件: 我在读这本书是每一个细胞循环结束,获得价值getCell(...)->getValue():$highestColumnAsLetters = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); //e.g. 'AK'
$highestRowNumber = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$highestColumnAsLetters++;
for ($row = 1; $row < $highestRowNumber + 1; $row++) {
$dataset = array();
for ($columnAsLetters = 'A'; $columnAsLetters != $highestColumnAsLetters; $columnAsLetters++) {
$dataset[] = $this->objPHPExcel->setActiveSheetIndex(0)->getCell($columnAsLetters.$row)->getValue();
if ($row == 1)
{
$this->column_names[] = $columnAsLetters;
}
}
$this->datasets[] = $dataset;
}

然而,尽管它读取数据正常,它会读取在计算字面上: 我从像这样的理解,我getCalculatedValue()为计算单元。 问题是,在Excel工作表,我导入,不预先知道哪些细胞被计算的,哪些不是。 有没有办法读取的方式,自动获取的值e799bee5baa6e997aee7ad94e58685e5aeb9366的单元格的值,如果它有一个简单的值,并得到计算结果,如果它是一个计算? 答: 事实证明,getCalculatedValue()工程的所有单元格,不知道为什么这不是默认getValue()因为我认为一个人要计算的,而不是公式本身的价值,在任何情况下,本作品:...->getCell($columnAsLetters.$row)->getCalculatedValue();
<?php
header("Content-Type: text/html; charset=utf-8");
require_once 'db.class.php';
require_once 'Classes/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$filePath = "email.xlsx";
$arr = array();
$temparr = array();
$PHPExcel = new PHPExcel();
$PHPReader = new PHPExcel_Reader_Excel2007();
$PHPExcel = $PHPReader->load($filePath);
$currentSheet = $PHPExcel->getSheet(0);
/*取得一共有多少列*/
$allColumn = $currentSheet->getHighestColumn();
/*取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
echo $allColumn;
echo '<hr>';
echo $allRow;
echo '<hr>';
for($currentRow = 2;$currentRow<=$allRow;$currentRow++){
$temparr['usernum'] = $currentSheet->getCell('A'.$currentRow)->getValue();
$temparr['price'] = $currentSheet->getCell('B'.$currentRow)->getValue();
$temparr['rongliang'] = $currentSheet->getCell('C'.$currentRow)->getValue();
$temparr['fujian'] = $currentSheet->getCell('D'.$currentRow)->getValue();
$temparr['gerenwangpan'] = $currentSheet->getCell('E'.$currentRow)->getValue();
$temparr['chaodafujian'] = $currentSheet->getCell('F'.$currentRow)->getValue();
$temparr['suishenyou'] = $currentSheet->getCell('G'.$currentRow)->getValue();
$temparr['chuanzhen'] = $currentSheet->getCell('H'.$currentRow)->getValue();
$temparr['qiyewangpan'] = $currentSheet->getCell('I'.$currentRow)->getValue();
//$arr[$currentRow-1] = $temparr;
$sql = "INSERT INTO `636f7079e79fa5e98193339netease_price` (`usernum`, `price`, `rongliang`, `fujian`, `gerenwangpan`, `chaodafujian`,`suishenyou`, `chuanzhen`, `qiyewangpan`) VALUES (
'".$temparr['usernum']."',
'".$temparr['price']."',
'".$temparr['rongliang']."',
'".$temparr['fujian']."',
'".$temparr['gerenwangpan']."',
'".$temparr['chaodafujian']."',
'".$temparr['suishenyou']."',
'".$temparr['chuanzhen']."',
'".$temparr['qiyewangpan']."'
)";
mysql_query($sql);
/*
自动读取
for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
$address = $currentColumn.$currentRow;
echo $currentSheet->getCell($address)->getValue()."\t";
}
echo "<br />";
*/
}

我有以下的Excel文件: 我在读这本书是每一个细胞循环结束,获得价值getCell(...)->getValue():$highestColumnAsLetters = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); //e.g. 'AK'
$highestRowNumber = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$highestColumnAsLetters++;
for ($row = 1; $row < $highestRowNumber + 1; $row++) {
$dataset = array();
for ($columnAsLetters = 'A'; $columnAsLetters != $highestColumnAsLetters; $columnAsLetters++) {
$dataset[] = $this->objPHPExcel->setActiveSheetIndex(0)->getCell($columnAsLetters.$row)->getValue();
if ($row == 1)
{
$this->column_names[] = $columnAsLetters;
}
}
$this->datasets[] = $dataset;
}

然而,尽管它读取数据正常,它会读取在计算字面上: 我从像这样的理解,我getCalculatedValue()为计算单元。 问题是,在Excel工作表,我导入,不预先知道哪些细胞被计算的,哪些不是。 有没有办法读取的方式,自动获取的值的单元格的值,如7a686964616fe4b893e5b19e332果它有一个简单的值,并得到计算结果,如果它是一个计算? 答: 事实证明,getCalculatedValue()工程的所有单元格,不知道为什么这不是默认getValue()因为我认为一个人要计算的,而不是公式本身的价值,在任何情况下,本作品:...->getCell($columnAsLetters.$row)->getCalculatedValue();

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网