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 批量出来数据的更多相关文章

  1. # Excel批量处理数据

    Excel批量处理数据 拖住框下拉即可得到每行+3的结果

  2. java使用POI实现Excel批量导入数据

    1.准备工作 1.1 创建模板表头与数据库表字段一一对应,示例如下 1.2将模板放入项目中,如下图所示: 2.前端页面 2.1 使用超链接提供模板下载地址 <html lang="zh ...

  3. 使用Excel批量给数据添加单引号和逗号

    表格制作过程如下: A2表格暂时为空,模板建立完成以后,用来放置原始数据: 在B2表格内输入公式:  ="'"&A2&"'"&" ...

  4. (转)使用Excel批量给数据添加单引号和逗号

    在使用PLSQL连接oracle数据库处理数据的过程中,常用的操作是通过ID查询出数据,ID需要附上单引号,如果查询的ID为一条或者几条,我们手动添加即可,但是如果是几百条.几千条的话,就需要使用一些 ...

  5. 【Javaweb】poi实现通过上传excel表格批量导入数据到数据库

    1.导入poi相关jar包 对于只操作2003及以前版本的excel,只需要导入poi-XXX.jar ,如果还需要对2007及以后版本进行操作,则需要导入 poi-ooxml-XXX.jar poi ...

  6. 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库

    将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...

  7. PHP批量导出数据为excel表格

    之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 //$teacherList 是从数据库查出来的二维数组 $execlnam ...

  8. java操作Excel之POI(6)使用POI实现使用模板批量添加数据

    action是用struts2写的:前端界面easyUI写的, 前端: <!DOCTYPE html> <html> <head> <meta charset ...

  9. java操作Excel之POI(5)利用POI实现使用模板批量导出数据

    后台导出方法: 在源文件夹src下面放个准备好的模板:/com/cy/template/userExportTemplate.xls,这个模板有头部一行: /** * 后台导出方法 * 利用POI实现 ...

随机推荐

  1. Spring MVC 笔记 概述

    学习笔记 模型:封装装程序数据 视图:渲染模型数据,一般来说就是输出HTML 控制:处理请求,构建模型并将其传递给视图进行渲染 以上三者均围绕DispatcherServlet设计,它处理所有的HTT ...

  2. 关于 BaseHTTPServer 的介绍

    简介: (1) 基础的web服务器是一个模板,其其角色是客户端和服务器端完成必要的HTTP交互,在basehttpserver模块中可以找到一个名字叫HTTPServer 的服务器基本类 (2)处理程 ...

  3. 基于vue的nuxt框架cnode社区服务端渲染

    nuxt-cnode 基于vue的nuxt框架仿的cnode社区服务端渲染,主要是为了seo优化以及首屏加载速度 线上地址 http://nuxt-cnode.foreversnsd.cngithub ...

  4. linux - 运维软件saltstack

    目录 运维软件saltstack 安装使用流程 运维软件saltstack 早期运维人员会根据自己的生产环境来写特定脚本完成大量重复性工作,这些脚本复杂且难以维护.系统管理员面临的问题主要是1.系统配 ...

  5. vue 底部bottomnav

    <template> <div id="foot"> <div class="tabBar"> <div class= ...

  6. Linux系统自带服务罗列

    /ect/services 文件列出了系统详细的服务 红色字体为常用服务 acpid ACPI(全称 Advanced Configuration and Power Interface)服务是电源管 ...

  7. 清北学堂模拟赛d6t1 角谷猜想

    分析:不用删数字,我们考虑加入数字,维护一个栈,把不是4和7的数加进去,遇到3看栈顶是不是1,是的话弹出来就可以了. #include <bits/stdc++.h> #define N ...

  8. [NOIP2016day2T1] 組合數問題(problem)

    题目描述 组合数C(n,m)表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们 ...

  9. Openfire:访问Servlet时绕开Openfire的身份验证

    假设有如下的场景,当我们开发一个允许Servlet访问的OF插件时,如果不需要身份验证的话,或者有其它的安全机制的话,我们会不希望每次都做一次OF的身份验证,而是能够直接访问Servlet.绕开身份验 ...

  10. HTML导航 - 点击更改背景

    步骤一: 在须要添加效果的<li>标签中添加onclick事件:<li onclick="setcurrent(this)"> 步骤二: 加入JS代码: f ...