1.读取字符串 :
cell.toString
2.读取Excel表格中的电话号码(数字):
DecimalFormat df = new DecimalFormat("#");
String responsiblemenPhone = df.format(c4 .getNumericCellValue());
3.读取date类型
if (0 == c4.getCellType()) {
if (HSSFDateUtil.isCellDateFormatted(c4)) {
Date d = c4.getDateCellValue();
createTime = new Timestamp(d.getTime());
}
Cell.CELL_TYPE_NUMERIC | 数值类型 |
cell.getNumericCellValue() 或cell.getDateCellValue() |
Cell.CELL_TYPE_STRING | 字符串类型 |
cell.getStringCellValue() 或cell.toString() |
Cell.CELL_TYPE_BOOLEAN | 布尔类型 | cell.getBooleanCellValue() |
Cell.CELL_TYPE_FORMULA | 表达式类型 | cell.getCellFormula() |
Cell.CELL_TYPE_ERROR |
异常类型 不知道何时算异常 |
cell.getErrorCellValue() |
Cell.CELL_TYPE_BLANK | 空,不知道何时算空 | 空就不要取值了吧 |
下面是一个Excel导入的demo:
public String saveSuccessfulCaseByExcel(SysUser u, File file,
String fileFileName) {
String path;
FileInputStream is = null;
StringBuffer newFileName = new StringBuffer("");
int index = StringUtils.lastIndexOf(fileFileName, '.');
HashSet<OmpServiceSuccessfulCase> set = new HashSet<OmpServiceSuccessfulCase>();
Boolean flag1 = false;
Boolean flag2 = false;
Boolean flag3 = false;
Boolean flag4 = false;
String extFileName = StringUtils.substring(fileFileName, index + 1);
System.out.println(fileFileName);
// 修改上传的文件名开始
newFileName = new StringBuffer();
String time = new SimpleDateFormat("yyyyMMddHHmmssSSS")
.format(new Date());
newFileName.append(time);
for (int i = 0; i < 3; i++) {
newFileName.append(new Random().nextInt(10));
}
// 修改上传的文件名结束
String separator = java.io.File.separator; // 分隔符
path = Platform.getInstance().getRealPath() + separator + "file"
+ separator + newFileName.append(u.getOrgId()) + "."
+ extFileName;// 设置保存路径
File destFile = new File(path);
try {
FileUtils.copyFile(file, destFile);
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
File excelFile = new File(path);
try {
is = new FileInputStream(excelFile);
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
System.out.println(is);
Workbook workbook = null;
try {
workbook = WorkbookFactory.create(is);
} catch (InvalidFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Sheet sheet = workbook.getSheetAt(0);// 默认读取的是第一个sheet
// 检查模板格式是否正确
Row row1 = sheet.getRow(0);
int count = row1.getPhysicalNumberOfCells();
Cell cc1 = row1.getCell(0);
Cell cc2 = row1.getCell(1);
Cell cc3 = row1.getCell(2);
Cell cc4 = row1.getCell(3);
if (count == 4 && "服务ID(服务ID一定要是该账号发布的服务ID)".equals(cc1.toString())
&& "标题(40个字以内)".equals(cc2.toString())
&& "成功案例详情(2000字以内)".equals(cc3.toString())
&& "创建时间(yyyy/MM/dd)".equals(cc4.toString())) {
System.out.println(cc4.toString());
System.out.println("总共:" + sheet.getPhysicalNumberOfRows());
// 基本校验开始
if (sheet.getPhysicalNumberOfRows() <= 1) {
return "导入数据不能为空!";
} else if (sheet.getPhysicalNumberOfRows() > 1) {
// 进行迭代
for (int i = sheet.getFirstRowNum() + 1; i < sheet
.getPhysicalNumberOfRows(); i++) {
int k = i + 1;
Row row = sheet.getRow(i);
Cell c1 = row.getCell(0);// ompBelowService.serviceId
Cell c2 = row.getCell(1);// ompBelowService.belowServiceIncome
Cell c3 = row.getCell(2);
Cell c4 = row.getCell(3);
OmpServiceSuccessfulCase ossfc = new OmpServiceSuccessfulCase();
if (c1 != null && c2 != null && c3 != null && c4 != null) {
String sid = c1.toString().trim();
String title = c2.toString().trim();
String detail = c3.toString().trim();
Timestamp createTime = null;
if (sid.length() != 32) {
flag1 = false;
return "第" + k + "行服务ID必须为32位";
} else {
flag1 = true;
}
if (title.length() > 40) {
flag2 = false;
return "第" + k + "行成功案例标题必须在40字以内";
} else {
flag2 = true;
}
if (detail.length() > 2000) {
flag3 = false;
return "第" + k + "行成功案例详情必须在2000字以内";
} else {
flag3 = true;
}
if (0 == c4.getCellType()) {
if (HSSFDateUtil.isCellDateFormatted(c4)) {
Date d = c4.getDateCellValue();
createTime = new Timestamp(d.getTime());
flag4 = true;
}
} else {
flag4 = false;
return "第" + k + "行日期格式不对";
}
if (flag1 && flag2 && flag3 && flag4) {
ossfc.setServiceId(sid);
ossfc.setCaseName(title);
ossfc.setCaseDetail(detail);
ossfc.setCreateTime(createTime);
set.add(ossfc);
}
}
}
// 基本校验结束,数据库校验开始
// 校验服务是否存在
for (OmpServiceSuccessfulCase e : set) {
String serivceId = e.getServiceId();
String caseName = e.getCaseName();
String caseDetail = e.getCaseDetail();
Timestamp createTime = e.getCreateTime();
OmpService os = (OmpService) baseTransaction.get(
OmpService.class, serivceId);
if (os == null) {
return "导入的服务ID不存在!";
} else if (!os.getOrgId().equalsIgnoreCase(u.getOrgId())
&& "1".equals(os.getIfDel())) {
return "您没有发布服务ID所对应的服务!";
} else {
// 校验数据库中是否存在相同的成功案例
e.setCreateTime(createTime);
System.out.println(createTime.toString());
e.setServiceCode(os.getServiceCode());
e.setServiceId(os.getId());
e.setServiceName(os.getServiceName());
e.setCreateuserId(u.getOrgId());
e.setCreateuserName(u.getUsername());
e.setOrgId(os.getOrgId());
e.setOrgName(os.getOrgName());
e.setOrgType(os.getOrgType());
e.setCaseName(caseName);
e.setCaseDetail(caseDetail.replaceAll(
"(^\\s{1,})|(\\s{1,}$)", ""));
e.setIfDel("1");
e.setLastOperatorId(u.getId());
e
.setLastOperatAction("saveSuccessfulCaseByExcel.action");
CommonOrganization co = (CommonOrganization) baseTransaction
.get(CommonOrganization.class, u.getOrgId());
CommonWindow cw = (CommonWindow) baseTransaction.get(
CommonWindow.class, u.getOrgId());
if (co == null) {
e.setOwnWin("ompompompompompompompompompomp60");
} else {
e.setOwnWin(co.getOwnWin());
}
baseTransaction.save(e);
return null;
}
}
}
} else {
return "请按照模板进行数据导入!";
}
return null;
}
}
相关推荐
java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...
在VB(Visual Basic)编程中,常常需要处理与Excel...以上就是关于“VB读取Excel表格数据并在ListView控件中显示”的主要知识点。通过掌握这些技能,你可以轻松地在VB程序中实现数据的导入和展示,提高应用的实用性。
本文将深入探讨如何在C#中实现无依赖于Microsoft Office的情况下读取Excel表格数据,主要关注以下几个方面:使用开源库、操作Excel文件格式以及优化性能。 首先,C#本身并不内置读取Excel的API,因此我们需要借助第...
在开发基于Qt的应用程序时,...总结来说,QtExcel允许开发者在Qt环境中高效地处理Excel数据,无论是读取大量记录还是写入复杂格式的数据。通过理解并运用上述知识点,开发者可以构建强大的数据处理工具,提高工作效率。
labview读取Excel表格中的数据,速度快,代码实现简单,下载下来直接就可以使用了
在VC++6.0开发环境中,通过编程读取Excel表格数据是常见的任务,这主要涉及到Microsoft Office自动化接口的使用。本文将深入探讨如何利用Visual C++ 6.0与Excel进行交互,实现从Excel文件中读取数据的功能。 首先,...
.Net C# 读取Excel表格数据,根据表格数据结构在数据库新建一张对应的数据表既可以上传导入SQlServer数据库,代码有上传文件功能和解析表格数据功能,这里是建数据转成DataTable保存,导入速度对循环导入效率高很多...
本篇文章将详细讲解如何在Android环境中直接读取资源文件夹下的Excel表格数据,为你的应用提供便捷的数据处理能力。 首先,理解Android的资源文件夹结构是至关重要的。在Android Studio项目中,我们通常把静态的非...
2. **安全性考虑**:直接读取Excel文件可能存在安全风险,建议在生产环境中进行适当的验证和错误处理。 3. **性能优化**:对于非常大的Excel文件,直接加载所有数据可能会导致内存占用过高。可以考虑分批次读取数据...
在C# WinForm应用中,读取Excel表格是常见的任务,尤其在数据处理和报表生成时。本项目可能是一个简单的示例,展示了如何利用C#的库来读取Excel文件中的数据。以下将详细讲解这一过程,以及涉及的关键知识点。 首先...
### 如何用VC读取Excel表格中的数据详细 在探讨如何使用VC(Visual C++)读取Excel表格中的数据之前,我们首先需要了解几个关键概念和技术背景。 #### 1. 使用VC通过ODBC访问Excel VC可以利用ODBC(Open Database...
在Java编程环境中,读取Excel表格内容并将其展示在Swing界面是一项常见的任务,尤其在数据处理和报表展示方面。本篇文章将详细讲解如何实现这一功能。 首先,我们需要引入两个关键库:Apache POI用于读取Excel文件...
文章中详细介绍了读取 Excel 表格数据的步骤,并提供了相应的 C# 代码。 知识点一:读取 Excel 表格中的数据 读取 Excel 表格中的数据可以使用 OleDbConnection 和 OleDbDataAdapter 两个类。OleDbConnection 类...
"读取Excel表格的插件库"正是这样一个工具,它是一个dll动态链接库,能够帮助开发者高效地读取Excel文件,并将数据转换为其他格式,例如Xml,以便更好地集成到项目中。 Unity是一个非常流行的开源游戏引擎,广泛...
本篇将深入探讨如何使用LabVIEW来读取Excel表格数据并将其转换为数组,同时获取行数和列数的信息。LabVIEW作为一个图形化编程语言,提供了丰富的工具和库,使得与Excel交互变得简单。 首先,我们要知道在LabVIEW中...
jquery读取excel组件,可读取excel表格中的内容
JS方法读取excel表格并显示在页面上,单HTML网页代码事例
在ASP.NET中,读取Excel数据并将其展示在Web页面上是常见的需求,尤其是在数据分析、报表展示或数据导入等场景中。本项目提供了一种实现方法,包括完整的项目代码和说明,帮助开发者快速理解并应用到自己的项目中。 ...
### Java读取Excel表格中的日期 #### 背景与问题描述 在处理Excel文件时,经常遇到的一个问题是如何正确地识别并处理日期格式的数据。这是因为Excel中的日期格式较为复杂,有时甚至会出现不同版本的Excel文件中...