日期:2014-05-18 浏览次数:20819 次
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Interop.Excel; using System.Reflection; using System.Data; using System.Data.OleDb; namespace xiaoh { public class ExcelHelper { /// <summary> /// 写入Excel文档 /// </summary> /// <param name="xPath">文件名称</param> /// <param name="source">需要写入的内容</param> /// <param name="sheetIndex">sheet序列</param> public static void writeExcel(string xPath, string[][] source, int sheetIndex) { Application ExcelRS = new ApplicationClass(); Workbook RSbook = ExcelRS.Workbooks.Open(xPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); Worksheet RSsheet = (Worksheet)RSbook.Sheets.get_Item(sheetIndex); for (int i = 0; i < source.Length; i++) { for (int j = 0; j < source[i].Length; j++) { RSsheet.Cells[i + 1, j + 1] = source[i][j]; } } RSbook.Save(); RSbook.Close(); RSsheet = null; RSbook = null; ExcelRS = null; collect(); } /// <summary> /// 读取Excel文档 /// </summary> /// <param name="xPath">文件名称</param> /// <param name="sheetIndex">sheet序号</param> /// <returns>返回一个数据集</returns> public static DataSet readExcel(string xPath, int sheetIndex) { Microsoft.Office.Interop.Excel.Application ExcelRS = new ApplicationClass(); Workbook RSbook = ExcelRS.Workbooks.Open(xPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); Worksheet RSsheet = (Worksheet)RSbook.Sheets.get_Item(sheetIndex); string sheetName = RSsheet.Name; RSbook.Close(); RSsheet = null; RSbook = null; ExcelRS = null; collect(); string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + xPath + ";" + "Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); try { conn.Open(); string strExcel = string.Format("select * from [{0}$]", sheetName); OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, strConn); DataSet ds = new DataSet(); myCommand.Fill(ds); return ds; } catch { return null; } finally { conn.Close(); } } private static void collect() { GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); } } }
------解决方案--------------------
http://topic.csdn.net/u/20110425/10/33fd08e6-54c2-4c89-adb4-e3507273ef66.html看这个帖子我发的例子
------解决方案--------------------
private void Button4_Click(object sender, System.EventArg