Excel 批量出来数据
try
{
string sheetname = TextBox1.Text.Trim(); HttpPostedFile upLoadPostFile = FileUpload1.PostedFile;
string upLoadPath = FileUpload1.PostedFile.FileName;
if (upLoadPath == "")
{
ShowAlertMessage("请选择上传文件!");
return;
}
string excelType = upLoadPath.Split('.')[].ToString();
if (excelType != "xls" && excelType != "xlsx")
{
ShowAlertMessage("此文件不是xls或者xlsx格式,请重新选择上传文件格式!");
}
else
{
InvoiceData.PutInvoiceJsonByExcel(sheetname, upLoadPostFile);
ShowAlertMessage("发送开票请求完毕!");
}
}
catch (Exception ex)
{
CustomValidator1.ErrorMessage = ex.Message;
CustomValidator1.IsValid = false;
}
public static void PutInvoiceJsonByExcel(string sheetName, HttpPostedFile upLoadPostFile)
{
try
{
//创建一个数据链接
StringBuilder strCon = new StringBuilder();
strCon.Append("Provider=Microsoft.ACE.OLEDB.12.0;");
strCon.Append("Data Source=" + upLoadPostFile.FileName + ";");
strCon.Append("Extended Properties=\"Excel 12.0;IMEX=1;\""); OleDbConnection myConn = new OleDbConnection(strCon.ToString());
string strCom = "SELECT * FROM [" + sheetName + "$] ";
myConn.Open();
//打开数据链接,得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
DataSet myDataSet = new DataSet();
//得到自己的DataSet对象
myCommand.Fill(myDataSet, sheetName); myConn.Close();
myConn.Dispose();
foreach (DataRow dr in myDataSet.Tables[].Rows)
{
string strOrderSn = dr[].ToString().Trim();
DataTable dt = OrderData.GetInvoiceByOrderSn(strOrderSn);
InvoiceData.PutInvoiceJson(dt);
}
}
catch (Exception ex)
{
throw new Exception("PutInvoiceJsonByExcel Error: " + ex.Message);
}
}
在做到需求的时候,改变了上传的Excel的上传格式,就是从Excel的第三行开始读取数据,在sql链接的地方做的属性HRD=yes;只能过滤掉第一行,但是现在是要过滤掉前两行的内容。
emmmmmmmma
应该这样做
Method1:
在进行select的时候,加上sheet的范围:
string strCom = "SELECT * FROM [" + sheetName + "$B2:E4] ";
就是上面的这样 $后面加上要读取数据的范围就ok了==》B2到E4的覆盖的数据,
但是,它是已B2为坐标原点,向右向下延伸,涉及到的当前右行和下行的数据是读不到的。 Method2:
//下面i的初始值等于几,就是从第n+1行开始读取的
for (int i = n; i < dt.Rows.Count; i++)
{ string Col1 = dt.Rows[i][1].ToString(); //得到第一列 订单号:
string Col2 = dt.Rows[i][2].ToString();//得到第2列 运单号
string Col3 = dt.Rows[i][3].ToString();//得到第三列 子单号
string Col4 = dt.Rows[i][4].ToString();//得到第4列 回签单号 }
Excel 批量出来数据的更多相关文章
- # Excel批量处理数据
Excel批量处理数据 拖住框下拉即可得到每行+3的结果
- java使用POI实现Excel批量导入数据
1.准备工作 1.1 创建模板表头与数据库表字段一一对应,示例如下 1.2将模板放入项目中,如下图所示: 2.前端页面 2.1 使用超链接提供模板下载地址 <html lang="zh ...
- 使用Excel批量给数据添加单引号和逗号
表格制作过程如下: A2表格暂时为空,模板建立完成以后,用来放置原始数据: 在B2表格内输入公式: ="'"&A2&"'"&" ...
- (转)使用Excel批量给数据添加单引号和逗号
在使用PLSQL连接oracle数据库处理数据的过程中,常用的操作是通过ID查询出数据,ID需要附上单引号,如果查询的ID为一条或者几条,我们手动添加即可,但是如果是几百条.几千条的话,就需要使用一些 ...
- 【Javaweb】poi实现通过上传excel表格批量导入数据到数据库
1.导入poi相关jar包 对于只操作2003及以前版本的excel,只需要导入poi-XXX.jar ,如果还需要对2007及以后版本进行操作,则需要导入 poi-ooxml-XXX.jar poi ...
- 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库
将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...
- PHP批量导出数据为excel表格
之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 //$teacherList 是从数据库查出来的二维数组 $execlnam ...
- java操作Excel之POI(6)使用POI实现使用模板批量添加数据
action是用struts2写的:前端界面easyUI写的, 前端: <!DOCTYPE html> <html> <head> <meta charset ...
- java操作Excel之POI(5)利用POI实现使用模板批量导出数据
后台导出方法: 在源文件夹src下面放个准备好的模板:/com/cy/template/userExportTemplate.xls,这个模板有头部一行: /** * 后台导出方法 * 利用POI实现 ...
随机推荐
- 关于Spring的69个问题
Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring ...
- Excel表格
自己一个一个试出来,并写上解释. 还不熟练,待多写代码多练习. #!/usr/bin/python # -*- coding:utf-8 -*- import os import xlwt impor ...
- (转)window.location.hash 属性使用说明
location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url.而location. ...
- 获取当前日期,或指定日期的农历js代码
时间不早了,直接上代码啦-- var CalendarData=new Array(100);var madd=new Array(12);var tgString="甲乙丙丁戊己庚辛壬癸& ...
- PHP中Session和Cookie 快速了解与使用
SessionPHP的$_SESSION可以存储当前用户数据信息,用户访问WEB网站的时候,PHP会给每个访问的用户创建一个session ID,该ID是唯一ID,保存在客户机上,而用户的会话数据是保 ...
- 关东升的《从零開始学Swift》即将出版
大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...
- 安卓实训第九天---Activity的复习以及在Onstart里设置网络连接
今天.首先对Activity的生命周期进行复习: (以下的截图部分是借鉴自赵雅智老师的博客.. .) Activity的完整生命周期自第一次调用onCreate()開始.直至调用onDestroy() ...
- Candy [leetcode] O(n)时间复杂度,O(1)空间复杂度的方法
对于ratings[i+1],和ratings[i]的关系有下面几种: 1. 相等.相等时ratings[i+1]相应的糖果数为1 2.ratings[i + 1] > ratings[i].在 ...
- Linux IPC之共享内存C 事例
Linux IPC之共享内存 标签: linuxrandomnull工作 2011-08-25 11:52 4123人阅读 评论(0) 收藏 举报 分类: Linux(3) 读书札记(3) 版权 ...
- 前端project师的价值体如今哪里?
这是一个非常老的话题"前端project师的价值体现在哪里?".有人说:"前端project师之于站点的价值宛如化妆师之于明星的价值."一位好的Web前端开发p ...