乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 按键精灵中主程序中<em>excel</em>表格,线程a内子程序 无法读取线...

按键精灵中主程序中<em>excel</em>表格,线程a内子程序 无法读取线...

作者:乔山办公网日期:

返回目录:excel表格制作


注意引入的都是poi的包,使用Cell,excel2003的.xls对应是HSSFCell,而之后的xlsx对应的则是XSSFCell,但是他们都继承于Cell,所以使用Cell就可以使用两种格式的excel导入了,下面解决excel中数据的各种格式
[java] view plaincopy
//读取excel
try {
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gbk");
// 1. 创建工厂类
DiskFileItemFactory factory = new DiskFileItemFactory();
// 2. 创建FileUpload对象
ServletFileUpload upload = new ServletFileUpload(factory);

// 3. 判断是否是上传表单
// boolean b = upload.isMultipartContent(request);
// 设置上传文件最大值
upload.setSizeMax(25 * 1024 * 1024);
// 是文件上传表单
// 4. 解析request,获得FileItem项e799bee5baa6e59b9ee7ad94333
List<FileItem> fileitems = upload.parseRequest(request);
// 5. 遍历集合
for (FileItem item : fileitems) {
// 判断是不是普通字段
if (!item.isFormField()) {
// 获得流,读取数据写入文件
InputStream in = item.getInputStream();
Workbook book = createWorkBook(in,item.getName());
// 获得第一个工作表对象
Sheet sheet = book.getSheetAt(0);
if(0==sheet.getLastRowNum()){
//如果没有数据
request.setAttribute("message", "excel的sheet0中不存在数据");
request.getRequestDispatcher("/cc/util/excelToData.jsp").forward(request, response);
}

// 第一行为标题,从第二行开始录入
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
//标题行,用来对比方便得到数据
Row titleRow = sheet.getRow(0);
//数据行
Row row = sheet.getRow(i);
//获得值
String value_temp= this.getValue((Cell) row.getCell(2));
}
}
}

} catch (Exception e) {
e.printStackTrace();
message="导入失败<br/>"+message;
request.setAttribute("message",message);
request.getRequestDispatcher("/cc/util/excelToData.jsp").forward(request, response);

}

直接将2个文件搞定萨,
还需要什么按键精灵哟。
1 使用的命名空间为:using System.Data.OleDb;
2 连接数据库的字符串为:
string myConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\
目录.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
*.xsl可以认为是数据库了,HDR表示是否隐藏excel的第一行(因为第一行一般表示字段名称)
IMEX 参数,因为不同的模式代表著不同的读写行为:当IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。e799bee5baa6e59b9ee7ad94332
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。当 IMEX=2 时为“连结模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
3.OleDbConnection myConnection = new OleDbConnection(myConn);
4.string mySQLstr = "SELECT f1,f2,f5 FROM [Sheet1$]";
//[Sheet1$]就是表格了,选取第1,2,5列,用Fn表示第n列5 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySQLstr, myConnection);6 DataSet myDS = new DataSet();7 myDataAdapter.Fill(myDS, "[Sheet1$]");
//原理都跟读取sql是一样
DataTable dt = myConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//把相关信息记录到datatable中
string tbname = dt.Rows[0][2].ToString().Trim();
//读取表名信息【注意】由于excel每个单元格内数据默认的格式为:varchar(255),因此读取超过255的单元格内容是需要修改注册表,这里提供修改方法:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]"TypeGuessRows"="0"表示从前TypeGuessRows行判断数据的类型。

简单的方法是通过ODBC来实现:具体实现一、包含Excel文件操作类头文件#include"CSpreadSheet.h"二、新建Excel文件,并写入默认数据//新建Excel文件名及路径,TestSheet为内部表名CSpreadSheetSS("c:\\Test.xls","TestSheet");CStringArraysample

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网