操作Execl的三种方法
来源:互联网 发布:问财神营销软件 编辑:程序博客网 时间:2024/05/17 23:12
http://blog.csdn.net/hfzsjz/article/details/3521427
http://blog.csdn.net/hfzsjz/article/details/3521331
http://blog.csdn.net/hfzsjz/article/details/3521482
方法1:通过oledb,使用sql语句操作数据表
create table会创建worksheet,insert语句会插入一行。用StringBuilder性能会好一些。
public void DealExcelOut(){ String strconn = "Provider=Microsoft.jet.OLEDB.4.0; Data Source=" + path2 + "; Extended Properties = Excel 8.0"; OleDbConnection cn = new OleDbConnection(strconn); OleDbCommand cmd = new OleDbCommand(); String cmdstr; //根据ListView创建VPN表 cn.Open(); cmd.Connection = cn; cmdstr = "Create Table VPN ("; foreach (ColumnHeader ch in listView_Main.Columns) { cmdstr += ch.Text + " TEXT,"; } cmdstr = cmdstr.Remove(cmdstr.Length - 1); cmdstr += ")"; cmd.CommandText = cmdstr; cmd.ExecuteNonQuery(); //导出数据 long cols = listView_Main.Columns.Count; foreach (ListViewItem lvi in listView_Main.Items) { cmdstr = "Insert Into VPN Values ("; for (long i = 0; i < cols; i++) cmdstr += "'" + lvi.SubItems[(Int32)i].Text + "',"; cmdstr = cmdstr.Remove(cmdstr.Length - 1); cmdstr += ")"; cmd.CommandText = cmdstr; cmd.ExecuteNonQuery(); } cn.Close();}
方法2:使用office组件
如果电脑上没有安装office,可能会出问题。
<span style="font-family:Arial;color:#333333;">/// <summary>/// 将ListView的内容写入Excel表中/// </summary>/// <param name="LView">ListView控件</param>/// <param name="strFilter">内容的标题</param>public void UWriteListViewToExcel(ListView LView, string strTitle){ Microsoft.Office.Interop.Excel.Application ExcelApp =new Microsoft.Office.Interop.Excel.Application(); object m_objOpt = System.Reflection.Missing.Value; Microsoft.Office.Interop.Excel.Workbooks ExcelBooks = (Microsoft.Office.Interop.Excel.Workbooks)ExcelApp.Workbooks; Microsoft.Office.Interop.Excel._Workbook ExcelBook = (Microsoft.Office.Interop.Excel._Workbook)(ExcelBooks.Add(m_objOpt)); Microsoft.Office.Interop.Excel._Worksheet ExcelSheet = (Microsoft.Office.Interop.Excel._Worksheet)ExcelBook.ActiveSheet; //设置标题 ExcelApp.Caption = strTitle; ExcelSheet.Cells[1, 1] = strTitle; //写入列名 for (int i = 1; i <= LView.Columns.Count; i++) { ExcelSheet.Cells[2, i] = LView.Columns[i-1].Text; } //写入内容 for (int i = 3; i < LView.Items.Count + 3; i++) { ExcelSheet.Cells[i, 1] = LView.Items[i - 3].Text; for (int j = 2; j <= LView.Columns.Count; j++) { ExcelSheet.Cells[i, j] = LView.Items[i-3].SubItems[j-1].Text; } } //显示Excel ExcelApp.Visible = true; }</span>
方法3: 导出为逗号分隔的文本
本质上是csv文件,如果文本里有逗号、换行等等控制字符,需要仔细处理。因此不推荐。
<span style="font-family:Arial;color:#333333;">public static bool ExportForListView(ListView listView, string fileName, bool isShowExcle) { FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs, Encoding.Unicode); string excel = ""; //用于存放要写入的一行文本。 for (int i = 0; i < listView.Columns.Count; i++) { excel = excel + listView.Columns[i].Text.ToString().Trim() + Convert.ToChar(9); } sw.WriteLine(excel); //写入DataGridView的标题行。 excel = ""; for (int i = 0; i < listView.Items.Count; i++) { for (int j = 0; j < listView.Columns.Count; j++) { if (listView.Items[i].SubItems[j].Text.ToString() == null) excel = excel + "" + Convert.ToChar(9); //循环写入每一行 else excel = excel + listView.Items[i].SubItems[j].Text.ToString() + Convert.ToChar(9); } sw.WriteLine(excel); excel = ""; } sw.Close(); fs.Close(); if (isShowExcle) { System.Diagnostics.Process.Start(fileName); } return true; }</span>
0 0
- 操作Execl的三种方法
- poi操作execl具体方法
- EXECL的基础操作说明
- phpExecl 生成 execl 的方法
- poi方式操作execl具体方法
- 操作Execl
- 操作Execl
- 操作EXECL
- Execl 操作
- 比较C#三种方法实现读取Execl数据到数据库
- perl脚本对execl的操作
- PB对EXECL的常用操作
- java对execl的简单操作
- 通过Nopi实现对execl的操作
- VBA操作注册表的三种方法
- jdbc批量操作的三种方法
- asp.net中导出Execl的方法
- winForm中导出Execl的方法
- Android基础面试题
- Linux下内存的使用率正确的算法
- WEKA使用教程
- 地方郭德纲的
- IOS类的动态属性研究
- 操作Execl的三种方法
- 第十六周项目3-用函数指针调用函数
- 客户全局信用控制&非全局信用控制
- poll&&epoll实现分析(一)——poll实现
- UIScrollView循环滚动
- 突然图样图体育
- Java设计模式透析之 —— 适配器(Adapter)
- 如何使用csc编译
- 17-5 去除第一个单词前的空格的错误程序