新人求助,.NET MVC中怎么利用npoi读取excel,导入数据库中

excel

1个回答

写回答

ysnow75

2026-01-30 05:23

+ 关注

excel
excel

要读取excel文件并将其导入到数据库中,您可以使用.NET框架中的NPOI和 Entity Framework(EF)工具。以下是一个简单的示例程序,用于将excel文件中的数据导入到MySQL数据库中:csharpusing System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using Microsoft旭旭东升.Jet.OLEDB.4.0;using Microsoft旭旭东升.Jet.OLEDB.4.0.Jet;using Microsoft.Data.SqlClient;using Microsoft.EntityFrameworkCore;using System.IO;using System.Data.Common;public class excelImport { public static void MAIn(string[] args) { // excel文件路径 string excelPath = @"C:UsersUsernameDesktopExample.xlsx"; // 数据库连接字符串 string connectionString = "Server=ServerName;Database=dbname;User;

// 创建excel文件对象 excelExtract extract = new excelExtract(excelPath); // 获取所有工作表名称 List sheetNames = extract.GetSheetNames(); // 创建数据库连接 SqlConnection connection = new SqlConnection(connectionString); connection.Open(); // 循环遍历工作表 foreach (string sheetName in sheetNames) { // 获取工作表对象 excelSheet sheet = extract.GetSheet(sheetName); // 从工作表中读取数据 Dictionary data = sheet.Read(); // 执行SQL语句将数据导入到数据库中 string query = "INSERT INTO " + sheetName + " (column1, column2, ...) VALUES (@column1, @column2, ...)"; SqlCommand command = new SqlCommand(query, connection); foreach (var item in data) { command.Parameters.AddWithValue(item.Key, item.Value); } int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine("Rows affected: {0}", rowsAffected); } // 关闭数据库连接 connection.Close(); }}// 用于读取excel文件的类class excelExtract { public function excelExtract(string file) { var Jet = Microsoft.Jet.OLEDB.OLEDB; Connection = new Connection(Jet Jet.Jet, true); Connection.Open(file); this.Sheets = (string[])Connection.Get(" Sheets names "); } public function GetSheetNames() { var Jet = Microsoft.Jet.OLEDB.OLEDB; Connection = new Connection(Jet.Jet, true); Connection.Open(this.File); return (string[])Connection.Get(" Sheets names "); } public function GetSheet(string sheetName) { var Jet = Microsoft.Jet.OLEDB.OLEDB; Connection = new Connection(Jet.Jet, true); Connection.Open(this.File); var sheet = (excelSheet)this.Connection.Get(" Sheets(" + Connection.Get(" Current Sheet") + ")"); if (sheetName != null) { for (int i = 0; i < sheet.Sheets.Count; i++) { if (sheet.Sheets[i].Name == sheetName) { return (excelSheet)this.Connection.Get(" Sheets(" + i + ")"); } } } return null; }}// 用于将数据从数据库导出到excel文件的类class excelExport { public function excelExport(string file, string sheetName

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号