我試圖到Excel轉換(.xls的,.xlsx)格式使用Excel以CSV使用基於POI事件API - 跳過標題行(在Excel中第一行)
文件,CSV文件,XLSX到CSV
對於XLS到CSV
一切都很好,但我不想在Excel中的標題行被寫入到CSV。 有人可以幫助我如何跳過excel中的標題行嗎?至少我如何獲得從處理程序獲取回調事件的行號?我在這方面有太多的幫助。
我試圖到Excel轉換(.xls的,.xlsx)格式使用Excel以CSV使用基於POI事件API - 跳過標題行(在Excel中第一行)
文件,CSV文件,XLSX到CSV
對於XLS到CSV
一切都很好,但我不想在Excel中的標題行被寫入到CSV。 有人可以幫助我如何跳過excel中的標題行嗎?至少我如何獲得從處理程序獲取回調事件的行號?我在這方面有太多的幫助。
最後經過這麼多的挖掘,我遇到了一個類XSSFSheetXMLHandler
,它獲取行號的方式如下。所以我用這個來知道行號。它是startElement方法的參數Attributes
的一部分。
else if("row".equals(name)) {
int rowNum = Integer.parseInt(attributes.getValue("r")) - 1; //This gets the row number. Then based on this value i Set a boolean variable part of the class member variable.
if(rowNum == 0) {
headerRow = true;
}
startRow(rowNum);
}
工作方式是主類正在讀取和解析電子表格,並使用「處理程序」類來執行任何轉換或輸出:它是名爲MyXSSFSheetHandler的內部類。
看看這個類的endElement()方法。您會看到它將單元格值寫入「輸出」,並且如果它是「行」元素的末尾,還會寫入缺失值。
您可以向此內部類添加變量(例如「int myRowCount = 0」)。
然後,的endElement()過程中,各地各寫入「輸出」包裝如果聲明
if (myRowCount > 0)
{
output.print... etc..
}
最後,裏面的endElement,它會檢查「行」已經結束,增加行向計數。