c#关于导入execl

由于工作需要,经常要添加新的产品,涉及到数量多了就得考虑批量处理。

//此驱动对应的Execl格式为 xls

string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties=‘Excel 8.0; HDR=YES; IMEX=1‘";

//此驱动对应的Execl格式为 xlsx     HDR=YES/No 有标题/没有标题     IMEX=0/1/2   写入/读取/写读皆可

//string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filenameurl + ";Extended Properties=‘Excel 12.0;HDR=Yes;IMEX=1;‘";

通过以上调用OleDb的方式,依旧有问题,主要是存在当某列前10几条的文件类型是数字,而其后数字上带有字母的话就无法读取到。即使设置此列为文本也无效,有些人说可修改注册表里面的值。但是我找注册表里面却没有那些节点,且这种方法要安装office才有效。挺多局限性。找资料看到前辈们推荐NPOI,就找到官网学习了:

官网:http://npoi.codeplex.com/SourceControl/latest#NPOI.Examples/ImportXlsToDataTable/Form1.cs

第一步,下载组件并导入NPOI.dll。

第二部,引用命名空间。using NPOI.HSSF.UserModel;   using NPOI.SS.UserModel;
第三步,说明工作簿对象: HSSFWorkbook hssfworkbook;

第四部,读取数据内容:

protected void Button1_Click(object sender, EventArgs e)

{           //打开.xls文件

using (FileStream fs = File.OpenRead(@"e:/*.xls"))

{

HSSFWorkbook wk = new HSSFWorkbook(fs);   //把xls文件中的数据写入wk中

for (int i = 0; i < wk.NumberOfSheets; i++)  //NumberOfSheets是*.xls中总共的表数

{

ISheet sheet = wk.GetSheetAt(i);   //读取当前表数据

for (int j = 0; j <= sheet.LastRowNum; j++)  //LastRowNum 是当前表的总行数

{

IRow row = sheet.GetRow(j);  //读取当前行数据

if (row != null)

{

for (int k = 0; k <= row.LastCellNum; k++)  //LastCellNum 是当前行的总列数

{

ICell cell = row.GetCell(k);  //当前表格

if (cell != null)

{    //读取cell即单元格的值做进一步处理

}

}

}

}

}

}

}

以上只是简单的读取到execl中的单元格的值,有待于进一步学习使用NPOI对文档进行操作处理。

时间: 2024-08-25 07:29:10

c#关于导入execl的相关文章

SqlServer2008 脚本导入Execl数据

使用SQL脚本导入Execl数据,是使用SQL的链接服务器的访问接口来完成的. 1.所以首先,需要数据库中有对应的Execl访问接口,使用的是SQlServer2008R2+Office2013,所以安装使用的是ACE2010的驱动 下载地址:  http://www.microsoft.com/zh-cn/download/details.aspx?id=13255 安装之后在数据会有对应的访问接口 2.开启Ad Hoc Distributed Queries --开启Ad Hoc Distr

同时向主表和从表里面导入execl数据 (asp.net webform)

//前台 <asp:FileUpload ID="UPExecl" runat="server" /> <asp:Button ID="BtnExecl" runat="server" Text="确认" OnClick="BtnExecl_Click" /> //批量导入销售发货单 protected void BtnExecl_Click(object sen

MVC4 导入execl和下载模板

上传预览 var IsIllegal = false;        function SelectFile(obj) {            document.getElementById('textfield').value = obj.value;            IsIllegal = false;        } <input type='text' disabled="disabled" name='textfield' id='textfield' cla

navicat 导入execl数据 傻瓜式教程

需求:将execl中的数据导入到指定表中几个字段数据 1.选中表右键--->选择导入向导 选择Excel点击下一步 下一步 直接下一步 因为有表直接下一步 点击下一步 下一步 点击开始 出现这个恭喜你成功了! 原文地址:https://www.cnblogs.com/zhangdke/p/12425026.html

使用 poi 导入execl模版文件添加数据制作报表

突然发现好久没写blog了,上一篇还是14年10月更新的,不是这段时间没编码,而是恰恰相反,这段时间实在太忙了,所以没有时间更新 项目中经常要制作报表而完全自己用poi生成报表太繁杂了,于是想用制作好的execl 替换数据实现报表的生成. 我对这各功能做好了封装,请看代码: package com.newnewbank.utils.doc; import java.io.File; import java.io.FileInputStream; import java.io.FileOutput

fileupload NPOI导入EXECL数据

fileupload JS @section scripts{ <script src="~/Content/js/fileupload/vendor/jquery.ui.widget.js"></script> <script src="~/Content/js/fileupload/jquery.fileupload.js"></script> <script type="text/javascri

oracle 导入execl

如果没有配置好的,就需要添加一个 如果找不到相应的驱动就安装AccessDatabaseEngine.exe

使用NPOI将多张图片导入execl

protected void btn_Export_Click(object sender, EventArgs e) { List<BNXX_SJXJ_XJSJ> list = ViewState["data"] as List<BNXX_SJXJ_XJSJ>; string[] AppPaths = HttpRuntime.AppDomainAppPath.ToString().Split('\\'); string PicPath = string.Emp

导入execl,获取execl内的数据转换为table

///<summary> ///读取xls\xlsx格式的Excel文件的方法 ///</summary> ///<param name="path">待读取Excel的全路径</param> ///<returns></returns> private DataTable ReadExcelToTable(string path) { //连接字符串 string connstring = "Provi