C#导入Excel数据的方式(两种)_第1页
C#导入Excel数据的方式(两种)_第2页
C#导入Excel数据的方式(两种)_第3页
C#导入Excel数据的方式(两种)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#导入Excel数据的方式(两种) 方式一、导入数据到数据集对象,只支持Excel的标准格式,即不能合并单元格等等/ / 导入数据到数据集中 / 备注:此种方法只支持excel原文件 / / 文件路劲 / 异常信息 / public static System.Data.DataTable InputExcel(string Path, ref string exceptionMsg) System.Data.DataTable dt = null; try string strConn = Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= +

2、 Path + ; + Extended Properties=Excel 8.0; using (OleDbConnection conn = new OleDbConnection(strConn) conn.Open(); System.Data.DataTable sheetDt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string sheet = new stringsheetDt.Rows.Count; for (int i = 0; i sheetDt.Rows.Count; i+) sheeti = s

3、heetDt.RowsiTABLE_NAME.ToString(); string strExcel = string.Format(select * from 0, sheet0); OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, strConn); dt = new System.Data.DataTable(); myCommand.Fill(dt); conn.Close(); catch (Exception ex) exceptionMsg = ex.Message; return dt; 方法二、读取Exce

4、l文件,然后根据里面的数据信息拼装#region 读取Excel表格中数据到DataTable中 public static System.Data.DataTable ChangeExcelToDateTable(string _path) System.Data.DataTable tempdt = new System.Data.DataTable(); tempdt.TableName = Excel; Application app = new Application(); object obj = System.Reflection.Missing.Value; try Workb

5、ook _wBook = app.Workbooks.Open(_path, obj, obj, obj, obj, obj, obj, obj, obj, obj, obj, obj, obj, obj, obj); Worksheet _wSheet = (Worksheet)_wBook.Worksheets.get_Item(1); DataRow newRow = null; DataColumn newColumn = null; for (int i = 2; i = _wSheet.UsedRange.Rows.Count; i+) newRow = tempdt.NewRow

6、(); for (int j = 1; j = _wSheet.UsedRange.Columns.Count; j+) if (i = 2 & j = 1) /表头 for (int k = 1; k = _wSheet.UsedRange.Columns.Count; k+) string str = (_wSheet.UsedRange1, k as Range).Value2.ToString(); newColumn = new DataColumn(str); newRow.Table.Columns.Add(newColumn); Range range = _wSheet.Ce

7、llsi, j as Range; if (range != null & !.Equals(range.Text.ToString() newRowj - 1 = range.Value2; tempdt.Rows.Add(newRow); _wSheet = null; _wBook = null; app.Quit(); Kill(app); int generation = System.GC.GetGeneration(app); app = null; System.GC.Collect(generation); return tempdt; catch (Exception ex

8、) app.Quit(); Kill(app); int generation = System.GC.GetGeneration(app); app = null; throw ex; #endregion #region 结束进程 DllImport(User32.dll, CharSet = CharSet.Auto) private static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); private static void Kill(Microsoft.Office.Interop.Excel.Application excel) IntPtr t = new IntPtr(excel.Hwnd); /得到这个句柄,具体作用是得到这块内存入口 int k = 0; GetWindowThreadProcessId(t, out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论