`
goto0917
  • 浏览: 48001 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
  • take: 这是POI方式,不是JXLS方式. JXLS包路径都是net ...
    jxls

xsl3

阅读更多
/**
* excel数据导入,默认从第二行开始读取。
*
* @param inStream:导入WBS的Excel文件流
* @param sheetName:Excel的sheet页名称
* @param attributes
*            excel列名称
* @param noEmptyColumn
*            是否该列为空,则表示到了结束,不再循环取值。
* @return PRM 的WBS对象
*/
public List<Map<String,?>> getDataFromExcelFile(InputStream inStream,
String sheetName, String[] attributes, int noEmptyColumn) {
List<Map<String,?>> list = new ArrayList<Map<String,?>>();
if (inStream == null)
return null;
HSSFWorkbook wb = null;
try {
wb = new HSSFWorkbook(new POIFSFileSystem(inStream));
} catch (IOException e) {
list = null;
return null;
}
if (wb == null)
return null;
HSSFSheet sheet = wb.getSheet(sheetName);
if (sheet == null)
sheet = wb.getSheetAt(0);
short i = 1;
while (true) {
HSSFRow row = sheet.getRow(i++);
if (row == null) {
break;
}
boolean bool = isEmptyOfSpecialColumn(row, noEmptyColumn);
if (bool) {
break;
}
Map<String,?> map = getAttrVauleFormExcelRow(row, attributes);
list.add(map);
}
return list;

}

/**
* 通过excel一行创建Map对象,
*
* @param row选中的Excel一行
* @param attributes
*            列属性名称,按excel列从左到右的顺序
* @return
*/
private Map<String,?> getAttrVauleFormExcelRow(HSSFRow row, String[] attributes) {
Map<String,Object> map= new HashMap<String,Object>();
if (attributes == null || attributes.length < 1)
return null;
for (int i = 0; i < attributes.length; i++) {
HSSFCell cell = row.getCell(i);
Object value = formatExcelData(cell);
map.put(attributes[i], value);
}
return map;
}

/**
* 判断某行中的指定列值是否为空
*
* @param row
* @param icolumn,首列从0开始。
* @return
*/
private boolean isEmptyOfSpecialColumn(HSSFRow row, int icolumn) {
boolean result = true;

if (row == null)
return result;
else {
HSSFCell cell = row.getCell(icolumn);
Object value = formatExcelData(cell);
if (value == null)
result = true;
else
result = false;
}
return result;
}

/**
* 把从Excel取出的数据进行格式化处理,变成字符串。
*
* @param cell
* @return
*/
private Object formatExcelData(HSSFCell cell) {

Object sData = null;
if (cell == null)
sData = null;
else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
sData = cell.getStringCellValue();
else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
sData =  cell.getNumericCellValue();
else if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK)
sData = "";
else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN)
sData = cell.getBooleanCellValue();
else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA)
sData = cell.getCellFormula();
else
sData = "excel data format unknown";

return sData;
}
}
分享到:
评论

相关推荐

    XSL开发基础参考资料

    XSL(Extensible Stylesheet Language)是一种用于转换XML(Extensible Markup Language)文档的语言,它允许开发者通过定义样式表来控制XML数据的呈现方式。在XSL开发中,理解和掌握XSL函数、XSL元素以及XPath是至...

    XSL简明教程(5)

    3. **`xsl:value-of`**: 用于输出选定节点的文本内容。 #### 实现过程 1. **加载XML文件**: - 使用JavaScript或其他编程语言加载XML文件。 - 在这个例子中,我们使用了`Microsoft.XMLDOM`对象。 2. **加载XSL...

    网页XSL基础教程,支持XML和XSL

    ### XSL基础教程知识点 #### 一、XSL与XML的关系 XSL(Extensible Stylesheet Language,可扩展样式表语言)是一种用于控制XML文档显示的标记语言。它主要用于将XML文档转换为其他格式,例如HTML或PDF。XSL允许...

    XSL学习3

    【标题】"XSL学习3" 涉及的核心知识点主要围绕XML的扩展样式表语言XSL(Extensible Stylesheet Language)展开。XSL是一种用于转换XML文档格式的语言,它能够将XML数据转换成HTML、PDF或其他类型的文档,以便于显示...

    跟我学xsl.doc

    【XSL:开启XML的转换之旅】 XML(Extensible Markup Language)是一种用于标记数据的语言,它使得数据结构清晰,易于机器解析和人类阅读。然而,XML文档本身并不包含任何关于如何显示这些数据的信息。这就引入了...

    xsl javascript 传递参数

    在IT行业中,XSL(Extensible Stylesheet Language)是一种用于转换XML(Extensible Markup Language)文档的语言,而XPath(XML Path Language)则是用于在XML文档中查找信息的查询语言。JavaScript,作为Web开发中...

    XSL-FO 教程

    XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。 XSL-FO 区域 本章讲解 XSL-FO 的区域模型(area model)。 XSL-FO 输出 本章讲解 XSL-FO 文档的输出元素(Output ...

    XSL.rar_dll编辑_xsl_xsl debug_xsl editor_xslxsl·com

    3. "xsl_editor":确认了这是一个XSL编辑工具,用于编写和修改XSL样式表。 4. "xslxsl·com":这可能是提供该编辑器的网站或资源的域名,用户可能可以在这里找到更多的信息和支持。 压缩包内的文件名: 1. ...

    跟我学XSL

    第一个XML文档 2.XSL入门 3.XSL模板与匹配模式 4.测试模式 5.XSL中的choose 6.运算符,关系与逻辑运算符,特殊字符等 7.XSL函数之一 8.脚本与XSL的结合及应用 9.XSL函数之二(DOM中对象的方法)

    在XSL使用数组例子

    &lt;xsl:variable name="array3" select="'element3'"/&gt; &lt;xsl:for-each select="$array1|$array2|$array3"&gt; &lt;p&gt;&lt;xsl:value-of select="."/&gt; &lt;/xsl:for-each&gt; ``` 这段代码将分别输出"element1"、"element2"和...

    xml xsl网页生成

    3. XSLT转换过程: - **匹配与选择**:XSLT通过XPath表达式来匹配XML文档中的元素,决定哪些元素需要被处理。 - **复制与转换**:默认情况下,XSLT会复制所有未匹配的元素,但可以通过模板规则进行自定义转换。 -...

    XSL 中文教程大全

    - **XSL简明教程(3)在客户端的实现.mht**:介绍如何在浏览器环境中实现XSL转换,让XML数据在Web页面上呈现。 9. **XSL学习指南** - **XSL_tour.CHM**:可能是一个完整的XSL参考手册,包含XSL的全面介绍和详细指南...

    xsl解析xml生成表格,表格行动态隐藏与显示

    在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,而XSL(eXtensible Stylesheet Language)则是一种样式表语言,用于转换XML文档的结构和格式。本主题主要关注如何使用XSL解析XML...

    使用xsl导出excel源码示例

    3. **Excel格式化**:在XSLT中,我们使用特定的元素和属性来模拟Excel的特性,例如 `&lt;xsl:table&gt;` 表示工作表,`&lt;xsl:row&gt;` 表示行,`&lt;xsl:cell&gt;` 表示单元格。通过设置这些元素的属性,可以控制单元格的样式,如...

    xsl教程

    XSL由三部分组成:XSLT(XSL Transformations)、XPath(XML Path Language)和XSL-FO(XSL Formatting Objects)。在Java环境中,处理XSL转换通常会涉及到JAXP(Java API for XML Processing)。 XSLT是XSL的主要...

    java XSL解析器

    3. **创建Transformer对象**:使用`TransformerFactory`的`newTransformer(Templates)`方法,你可以根据之前加载的模板创建一个`Transformer`对象。 4. **加载XML源**:同样,你需要将要转换的XML文档加载为`Source...

    XML+xsl讲XML文档的内容用xsl建表

    3. **使用XPath选取数据**:在模板中,使用XPath表达式选取XML文档中的特定数据,将其插入到表格的相应位置。 4. **设置表格样式**:通过XSLT控制表格的样式,如边框、颜色、字体等,以提高可读性。 5. **应用转换...

    xml根据xsl转换

    XSLT(XSL Transformations)是实现这一转换的具体语言,它是XSL的一部分,用于编写转换规则。通过XSLT,我们可以定义一系列的模板和规则,将XML文档的结构和内容映射到新的格式上。 XSLT的工作原理是匹配XML文档中...

    xsl官方文档

    &lt;xsl:for-each select="tokenize('item1,item2,item3', ',')"&gt; &lt;xsl:value-of select="." /&gt; &lt;xsl:text&gt; &lt;/xsl:text&gt; &lt;/xsl:for-each&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; ``` 在这个例子中,我们使用`...

    用XSL把XML转化在EXCEL导出

    3. XSLT转换:使用XSLT处理器(如Saxon或Xalan)对XML和XSL进行解析和转换。 4. 输出Excel:转换后的结果通常为一个临时的HTML或XML文件,可以被浏览器或专门的工具识别并呈现为Excel格式。 5. 反台处理:服务器端的...

Global site tag (gtag.js) - Google Analytics