2011-11-08 54 views
2
  1. 考慮到與N個邏輯行的電子表格
  2. 凡一行是完全空白*
  3. cfspreadsheet action="read"將返回的查詢與N的RecordCount - 1

*一個完全空白的行是每一個單元實際上都是空白的行。請參閱POI文檔中的CELL_TYPE_BLANKcfspreadsheet無法讀取空行

cfspreadsheet可能包含空行嗎?

回答

2

否。由於電子表格數據並不總是連續的,所以<cfspreadsheet action="read" query="queryName" ...><cfspreadsheet action="read" format="csv|html" ..>有意屏蔽空白行以避免包含大量的空白噪聲。所以除非一行至少有一個非空白單元,否則它不會被檢測到。 AFAIK,沒有設置來覆蓋該行爲。你將不得不挖掘潛在的POI工作手冊和自己動手。

+0

是的,我使用了POI工作簿對象。謝謝。 –

0

我建立了一個這樣的XLS:

|Row1|Data1| 
[blank] 
|Row3|Data3| 
[blank] 
|Row5|Data5| 

奔着這個代碼在它:

<cfspreadsheet action="read" src="c:\temp\book1.xlsx" name="st1"> 
<table border="1"> 
<cfloop index="iRow" from="1" to="5"> 
    <tr> 
     <cfloop index="iCol" from="1" to="2"> 
      <cfoutput><td>#spreadsheetGetCellValue(st1, iRow, iCol)#&nbsp;</td></cfoutput> 
     </cfloop> 
    </tr> 
</cfloop> 
</table> 

輸出功率爲:

|Row1|Data1| 
[blank] 
|Row3|Data3| 
[blank] 
|Row5|Data5| 

這是我」 d期望。

所以它看起來對我來說像空白行尊重就好...?

我和你有什麼不同?

+0

我不認爲這是他的意思是「讀」。我的意思是他的意思是讀入'query'或'csv/html'格式。那些* do *忽略所有BLANK行,如果填充的數據行之間有很大差距,可能會避免返回大量的空記錄。 「SpreadSheetGetCellValue」的重點略有不同。所以它*會返回一個空字符串 - 即使當單元格是空白或基本上爲空時。 – Leigh

+0

當然,對不起,我沒有很好地表達自己(我的確沒有徹底閱讀原文)。我的意思是它不像信息*不可用*,它只是通過Jared使用的特定機制無法使用。所以我建議使用*做的機制*利用他想要的信息。 –

+0

啊,好吧。這就說得通了。儘管他們可能仍需要利用POI來確定填充數據的起點和終點。 – Leigh