项目需求: 1、把数据导出到Excel; 2、把Excel数据导入到数据库
使用的类库: Aspose.Cells ExcelHelper.zip下载
一、导出【调用已经封装好的方法】【未封装的方法,步骤有主要有两个,a. 添加表头 b. 添加数据部分】
- 打开一个文本保存对话框【SaveFileDialog控件】
- 调用ExcelHelper类的DataTableToExcel方法导出
/// <summary> /// 导出Excel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnExeclOutput_Click(object sender, EventArgs e) { string localFilePath = String.Empty; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); //设置文件类型 saveFileDialog1.Filter = " xls files(*.xls)|*.txt|All files(*.*)|*.*"; //设置文件名称: saveFileDialog1.FileName = DateTime.Now.ToString("yyyyMMddHHmm") + "-" + "员工管理表.xls"; //保存对话框是否记忆上次打开的目录 saveFileDialog1.RestoreDirectory = true; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { //获得文件路径 localFilePath = saveFileDialog1.FileName.ToString(); DataTable dt = (DataTable)dgvTb.DataSource; bool flag = new Common.ExcelHelper(localFilePath,"").DatatableToExcel(dt); if (flag) { MessageBox.Show("导出成功!,导出数据条数: "+dt.Rows.Count +" 条"); } else { MessageBox.Show("导出失败!"); } } }
二、导入: 【导入返回一个DataTable】
- 打开一个Excel,只要传入Excel文件的路径
- 设置从第二行的数据开始获取【不获取表头】
/// <summary> /// 导入 /// </summary> /// <returns></returns> public DataTable ExcelToDatatalbe() { //打开Excel Workbook book = new Workbook(fullFilename); Worksheet sheet = book.Worksheets[0]; Cells cells = sheet.Cells; //获取excel中的数据保存到一个datatable中 DataTable dt_Import = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true); return dt_Import; }
项目执行截图:
导入Excel截图: