asp.net读取excel文件多种方法
- public DataSet ExcelToDS(string Path)
- {
- string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
- OleDbConnection conn = new OleDbConnection(strConn);
- conn.Open();
- string strExcel = "";
- OleDbDataAdapter myCommand = null;
- DataSet ds = null;
- strExcel="select * from [sheet1$]";
- myCommand = new OleDbDataAdapter(strExcel, strConn);
- ds = new DataSet();
- myCommand.Fill(ds,"table1");
- return ds;
- }
- string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
- OleDbConnection conn = new OleDbConnection(strConn);
- DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);
- string tableName=schemaTable.Rows[][].ToString().Trim();
- public void DSToExcel(string Path,DataSet oldds)
- {
- //先得到汇总Excel的DataSet 主要目的是获得Excel在DataSet中的结构
- string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+path1+";Extended Properties=Excel 8.0" ;
- OleDbConnection myConn = new OleDbConnection(strCon) ;
- string strCom="select * from [Sheet1$]";
- myConn.Open ( ) ;
- OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom, myConn ) ;
- system.Data.OleDb.OleDbCommandBuilder builder=new OleDbCommandBuilder(myCommand);
- //QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。
- builder.QuotePrefix="["; //获取insert语句中保留字符(起始位置)
- builder.QuoteSuffix="]"; //获取insert语句中保留字符(结束位置)
- DataSet newds=new DataSet();
- myCommand.Fill(newds ,"Table1") ;
- for(int i=;i<oldds.Tables[].Rows.Count;i++)
- {
- //在这里不能使用ImportRow方法将一行导入到news中,
- //因为ImportRow将保留原来DataRow的所有设置(DataRowState状态不变)。
- //在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的DataRowState!=Added
- DataRow nrow=aDataSet.Tables["Table1"].NewRow();
- for(int j=;j<newds.Tables[].Columns.Count;j++)
- {
- nrow[j]=oldds.Tables[].Rows[i][j];
- }
- newds.Tables["Table1"].Rows.Add(nrow);
- }
- myCommand.Update(newds,"Table1");
- myConn.Close();
- }
- //读取EXCEL的方法 (用范围区域读取数据)
- private void OpenExcel(string strFileName)
- {
- object missing = System.Reflection.Missing.Value;
- Application excel = new Application();//lauch excel application
- if (excel == null)
- {
- Response.Write("<script>alert('Can't access excel')</script>");
- }
- else
- { www.jbxue.com
- excel.Visible = false; excel.UserControl = true;
- // 以只读的形式打开EXCEL文件
- Workbook wb = excel.Application.Workbooks.Open(strFileName, missing, true, missing, missing, missing,
- missing, missing, missing, true, missing, missing, missing, missing, missing);
- //取得第一个工作薄
- Worksheet ws = (Worksheet)wb.Worksheets.get_Item();
- //取得总记录行数(包括标题列)
- int rowsint = ws.UsedRange.Cells.Rows.Count; //得到行数
- //int columnsint = mySheet.UsedRange.Cells.Columns.Count;//得到列数
- //取得数据范围区域(不包括标题列)
- Range rng1 = ws.Cells.get_Range("B2", "B" + rowsint);//item
- Range rng2 = ws.Cells.get_Range("K2", "K" + rowsint); //Customer
- object[,] arryItem= (object[,])rng1.Value2;//get range's value
- object[,] arryCus = (object[,])rng2.Value2;
- //将新值赋给一个数组
- string[,] arry = new string[rowsint-, ];
- for (int i = ; i <= rowsint-; i++)
- {
- //Item_Code列
- arry[i - , ] =arryItem[i, ].ToString();
- //Customer_Name列
- arry[i - , ] = arryCus[i, ].ToString();
- }
- Response.Write(arry[, ] + "/" + arry[, ] + "#" + arry[rowsint - , ] + "/" + arry[rowsint - , ]);
- }
- excel.Quit();excel = null;
- Process[] procs = Process.GetProcessesByName("excel");
- foreach (Process pro in procs)
- {
- pro.Kill();//没有更好的方法,只有杀掉进程
- }
- GC.Collect();
- }
- using System.Text;和using System.IO;
- FileStream fs = new FileStream("d:\\Customer.csv", FileMode.Open, FileAccess.Read, FileShare.None);
- StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding());
- string str = "";
- string s = Console.ReadLine();
- while (str != null)
- { www.jbxue.com
- str = sr.ReadLine();
- string[] xu = new String[];
- xu = str.Split(',');
- string ser = xu[];
- string dse = xu[];
- if (ser == s)
- {
- Console.WriteLine(dse);break;
- }
- }
- sr.Close();
- //txt文件名
- string fn = DateTime.Now.ToString("yyyyMMddHHmmss") + "-" + "PO014" + ".txt";
- OleDbConnection con = new OleDbConnection(conStr);
- con.Open();
- string sql = "select ITEM,REQD_DATE,QTY,PUR_FLG,PO_NUM from TSD_PO014";
- /OleDbCommand mycom = new OleDbCommand("select * from TSD_PO014", mycon);
- //OleDbDataReader myreader = mycom.ExecuteReader(); //也可以用Reader读取数据
- DataSet ds = new DataSet();
- OleDbDataAdapter oda = new OleDbDataAdapter(sql, con);
- oda.Fill(ds, "PO014");
- DataTable dt = ds.Tables[];
- FileStream fs = new FileStream(Server.MapPath("download/" + fn), FileMode.Create, FileAccess.ReadWrite);
- StreamWriter strmWriter = new StreamWriter(fs); //存入到文本文件中
- //把标题写入.txt文件中
- //for (int i = 0; i <dt.Columns.Count;i++)
- //{
- // strmWriter.Write(dt.Columns[i].ColumnName + " ");
- //}
- foreach (DataRow dr in dt.Rows)
- {
- string str0, str1, str2, str3;
- string str = "|"; //数据用"|"分隔开
- str0=dr[].ToString();
- str1=dr[].ToString();
- str2=dr[].ToString();
- str3=dr[].ToString();
- str4=dr[].ToString().Trim();
- strmWriter.Write(str0);
- strmWriter.Write(str);
- strmWriter.Write(str1);
- strmWriter.Write(str);
- strmWriter.Write(str2);
- strmWriter.Write(str);
- strmWriter.Write(str3);
- strmWriter.WriteLine();//换行
- }
- strmWriter.Flush();
- strmWriter.Close();
- if(con.State==ConnectionState.Open)
- {
- con.Close();
- }
asp.net读取excel文件多种方法的更多相关文章
- ASP.NET读取EXCEL文件的三种经典方法(转)
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:public DataSet ExcelToDS(string Path) { str ...
- ASP.NET读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { ...
- .NET读取Excel文件的三种方法的区别
ASP.NET读取Excel文件方法一:采用OleDB读取Excel文件: 把Excel文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(strin ...
- C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...
- R语言读取excel文件的3种方法
R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为 ...
- Java读取Excel文件的几种方法
Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...
- java 读取Excel文件并数据持久化方法Demo
import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util ...
- 读取Excel文件的两种方法
第一种方法:传统方法,采用OleDB读取EXCEL文件, 优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用 private DataSet GetConnect_DataSet2(stri ...
- (转)C# 读取EXCEL文件的三种经典方法
原文地址http://www.open-open.com/code/view/1420029490093 1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取 ...
随机推荐
- HTML5的动画学习历程
一.三角学原理. function getRadio(d){//根据角度获得弧度, return d*Math.PI/180; }, fun ...
- python wechat_sdk间接性的出现错误OfficialAPIError: 40001,说access_token已过期或者不是最新的。
原因是部署django时使用了多进程,每个进程都会去请求access_token,只有最新的那个有效
- js注意事项
在数组顶部插入一条数据 data.result.unshift({ Value: 'all', Text: '请选择分类' }); 执行iframe中的javascript方法 window.fram ...
- [kuangbin带你飞]专题一 简单搜索
ID Origin Title 454 / 1008 Problem A POJ 1321 棋盘问题 328 / 854 Problem B POJ 2251 Dungeon Ma ...
- nyoj 103 A + B problem II
点击打开链接 A+B Problem II 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 I have a very simple problem for you. G ...
- MapReduce从HBase读写数据简单示例
就用单词计数这个例子,需要统计的单词存在HBase中的word表,MapReduce执行的时候从word表读取数据,统计结束后将结果写入到HBase的stat表中. 1.在eclipse中建立一个ha ...
- php array函数实例应用
array_diff_key() array_diff_assoc() array_count_values() array_combine() array_column() array_chunk( ...
- c/c++笔记
string 若要根据字典序比较string类型的大小,只需要用><=就可以啦 例如: string s1="abcz"; string s2="abcd&q ...
- 在Ubuntu Server14.04上编译Android6.0源码
此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把An ...
- [AFUI]App Framework
---------------------------------------------------------------------------------------------------- ...