<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=411156&amp;view=findpost&amp;p=3735178</guid>
        <pubDate>Wed, 02 Aug 2017 21:19:32 +0000</pubDate>
        <title>Apache POI - Вопрос по выводу значений ячеек</title>
        <link>https://forum.sources.ru/index.php?showtopic=411156&amp;view=findpost&amp;p=3735178</link>
        <description><![CDATA[Hehabr: Нижеследующий код выдает результат в консоли:<br>
....................<br>
D5 - C34<br>
C34<br>
....................<br>
Почему выводится сама формула (=C34) , стоящая в ячейке D5, а не число, которое видно в ячейке D5 если открыть сам файл?<br>
Как сделать чтобы выводилось само число?<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">import org.apache.poi.ss.usermodel.*;</div><div class="code_line">import org.apache.poi.ss.util.CellReference;</div><div class="code_line">import org.apache.poi.xssf.usermodel.XSSFSheet;</div><div class="code_line">import org.apache.poi.xssf.usermodel.XSSFWorkbook;</div><div class="code_line">import java.io.*;</div><div class="code_line">&nbsp;</div><div class="code_line">public class POITest {</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static void main(String[] args) throws IOException {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;FileInputStream fis = new FileInputStream(&quot;C:/Test/1.xlsm&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;XSSFWorkbook workbook = new XSSFWorkbook(fis);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;XSSFSheet sheet = workbook.getSheetAt(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;CellReference ref = new CellReference(&quot;D5&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int row = ref.getRow();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int col = ref.getCol();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Cell cell = sheet.getRow(row).getCell(col);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;gettingTheCellContents(ref, cell);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;fis.close();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;workbook.close();</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// https://poi.apache.org/spreadsheet/quick-guide.html#CellContents</div><div class="code_line">&nbsp;&nbsp; &nbsp;private static void gettingTheCellContents(CellReference cellRef, Cell cell) {</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DataFormatter formatter = new DataFormatter();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.print(cellRef.formatAsString());</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.print(&quot; - &quot;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// get the text that appears in the cell by getting the cell value and applying any data formats (Date, 0.00, 1.23e9, .23, etc)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;String text = formatter.formatCellValue(cell);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(text);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// Alternatively, get the value and format it yourself</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;switch (cell.getCellTypeEnum()) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case STRING:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(cell.getRichStringCellValue().getString());</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case NUMERIC:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (DateUtil.isCellDateFormatted(cell)) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(cell.getDateCellValue());</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(cell.getNumericCellValue());</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case BOOLEAN:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(cell.getBooleanCellValue());</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case FORMULA:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(cell.getCellFormula());</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case BLANK:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Hehabr</author>
        <category>Java</category>
      </item>
	
      </channel>
      </rss>
	