Excel导入导出(Demo)

=====================================================

Excel导入思路:

将一个Excel文件的数据转化成一个DateTabel 然后批量添加到数据库

将数据导入Excel思路:

将数据库信息查询到转化成Datatable然后批量添加到Excel中

 

 //喜欢的可以关注一下我的博客http://www.cnblogs.com/lizong000/

================================================================================================

在DAL里面的数据处理

=======================================================

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
namespace ExcelDal
{
public class ExcelDals
{

/// <summary>
/// 将Excel数据添加到dataTable中
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public DataTable ExcelTable(string path)
{

string strconn = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + path + ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strconn);
if (conn.State != ConnectionState.Open)
{
conn.Open();

}
string sql = "select * from [Sheet1$]";
OleDbCommand com = new OleDbCommand(sql, conn);
OleDbDataAdapter ada = new OleDbDataAdapter(com);
DataTable dt = new DataTable();
ada.Fill(dt);
conn.Close();
return dt;

}

/// <summary>
/// 将数据导入Excel
/// </summary>
/// <param name="path"></param>
/// <param name="StuList"></param>
/// <returns></returns>
public static int ExcelToAdd(string path, List<MODELS.StrModel> StuList)
{
string strcon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + path + ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strcon);
if (conn.State != ConnectionState.Open)
{
conn.Open();
}

string createStr = "create table [Sheet6]([学号] int,[姓名] Text,[语文成绩] Text,[数学成绩] int)";
OleDbCommand cmd = new OleDbCommand(createStr, conn);
cmd.ExecuteNonQuery();
conn.Close();
int ids = 0;
foreach (MODELS.StrModel item in StuList)
{
AddExcel(item, path);
ids++;
}
return ids;
}
/// <summary>
/// 添加到Excel
/// </summary>
/// <param name="StuList"></param>
private static void AddExcel(MODELS.StrModel StuList,string path)
{
string sql = "insert into [Sheet6$]([学号],[姓名],[语文成绩],[数学成绩]) values(" + StuList.StuID + ",'" + StuList.StuName + "','" + StuList.StuCMark + "','" + StuList.StuMonthMark + "')";
string strcon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + path + ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strcon);
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
OleDbCommand com = new OleDbCommand(sql, conn);
com.ExecuteNonQuery();
conn.Close();
}

}
}

======================================================================================================

在控制器中的操作代码,主要是调用Excel帮助类

===================================================

 

using ExcelDal;
using System.IO;
using System.Data;

 

 

 

//将数据库数据导入Excel
public ActionResult Down()
{

StuDal dal = new StuDal();
List<MODELS.StrModel> StuList = StuDal.StuList(); //将数据库中的数据拿出来
int exelId = ExcelDals.ExcelToAdd("C:/Users/ASUS/Desktop/学生信息二.xlsx", StuList); //调用ExceDal的方法将数据放入到Excel中
if (exelId > 0)
{
return Content("<script>alert('导出成功');location.href='/Home/index'");
}
else
{
return Content("<script>alert('导出失败');location.href='/Home/index'");
}


}
/// <summary>
/// 导入数据库
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost]
public ActionResult Up(HttpPostedFileBase file)
{
string name = Server.MapPath("/Excel/" + Path.GetFileName(file.FileName)); //
file.SaveAs(name);
ExcelDals bll = new ExcelDals();
ExcelDal.StuDal stuBll = new StuDal();
DataTable Dex = bll.ExcelTable(name); //将Excel数据转换为Datatable
if (stuBll.AddExcelToSql(Dex) > 0)
{
return Content("<script>alert('导入成功');location.href='/Home/index'</script>");

}
else
{
return Content("<script>alert('导入失败');location.href='/Home/index'</script>");
}
}

 

================================================================================================

Html页面的代码

======================================================================================

 

<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script>
function DC() {

location.href = "/Home/Down";
}
</script>

</head>
<body>
<form action="/Home/Up" method="post" enctype="multipart/form-data">
<input id="File1" type="file" name="file"/><input type="submit" value="导入"/>
</form>
<input type="button" value="导出" οnclick="DC()" />
<div>
<table>
<tr>
<td>
学号
</td>
<td>
学生姓名
</td>
<td>
语文成绩
</td>
<td>
数学成绩
</td>
</tr>
@{

foreach (var i in ViewBag.StuList)
{
<tr>
<td>
@i.StuID
</td>
<td>
@i.StuName
</td>
<td>
@i.StuCMark
</td>
<td>
@i.StuMonthMark
</td>
</tr>

}
}
</table>

</div>
</body>
</html>

转载于:https://www.cnblogs.com/lizong000/p/7526944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel导入导出Excel软件中非常常见且重要的功能之一。在实际应用开发中,我们常常需要通过程序来实现对Excel文件的导入导出操作。下面是一个示例的Excel导入导出Demo源码。 导入功能部分: ```java import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelImportDemo { public static void main(String[] args) { try { // 打开要导入Excel文件 InputStream is = new FileInputStream("导入文件路径"); Workbook workbook = new XSSFWorkbook(is); Sheet sheet = workbook.getSheetAt(0); // 遍历每一行数据 for (Row row : sheet) { // 遍历每个单元格 for (Cell cell : row) { // 将单元格内容输出 System.out.print(cell.getStringCellValue() + "\t"); } System.out.println(); } // 关闭流 workbook.close(); is.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 导出功能部分: ```java import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelExportDemo { public static void main(String[] args) { try { // 创建Excel工作簿 Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); // 创建数据行并填充数据 for (int i = 0; i < 5; i++) { Row row = sheet.createRow(i); for (int j = 0; j < 5; j++) { Cell cell = row.createCell(j); cell.setCellValue("数据" + (i + 1) + "-" + (j + 1)); } } // 保存Excel文件 FileOutputStream fos = new FileOutputStream("导出文件路径"); workbook.write(fos); workbook.close(); fos.close(); System.out.println("导出成功!"); } catch (Exception e) { e.printStackTrace(); } } } ``` 以上是一个简单的Excel导入导出Demo源码,可以帮助你了解如何通过Java代码实现Excel文件的导入导出功能。你可以根据实际需要进行修改和扩展,以适应更复杂的导入导出操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值