没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2024-12-13 10:24:13.963|阅读 60 次
概述:本文将探讨如何使用 Spire.XLS for .NET 在 C# 程序中导入 Excel 数据到数据库以及导出数据库到 Excel 文件,实现数据在 Excel 和数据库之间无缝流转。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
在现代企业环境中,确保 Excel 文件与数据库之间顺畅的数据交换对于优化工作流程和提升数据分析的效率至关重要。通过高效的数据导入导出操作,企业能够充分利用数据库的强大处理能力和 Excel 的灵活性,实现更精准的业务决策支持。
本文将探讨如何使用 Spire.XLS for .NET 在 C# 程序中导入 Excel 数据到数据库以及导出数据库到 Excel 文件,实现数据在 Excel 和数据库之间无缝流转。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。
PM> Install-Package Spire.XLS
用 C# 将 Excel 数据导入数据库
借助 Spire.XLS for .NET,我们可以使用 Workbook.LoadFromFile() 方法载入 Excel 文件,并通过 CellRange.Value 属性访问单元格数据。然后,可以利用相关的数据库操作模块(如适用于 SQLite 的 System.Data.SQLite 模块)将数据写入数据库,从而实现将 Excel 文件中的数据无缝导入到数据库的功能。
以下步骤和代码以 SQLite 数据库为例,展示如何使用 C# 将 Excel 数据导入到数据库:
using System.Data.SQLite; using Spire.Xls; namespace ExcelToSQLite { class Program { static void Main(string[] args) { // Excel文件的路径 string excelFilePath = "示例.xlsx"; // SQLite数据库的文件路径 string sqliteFilePath = "output/Excel导入数据库.db"; // 打开Excel文件 Workbook workbook = new Workbook(); workbook.LoadFromFile(excelFilePath); // 如果数据库文件不存在,则创建一个新的数据库文件 if (!File.Exists(sqliteFilePath)) { SQLiteConnection.CreateFile(sqliteFilePath); Console.WriteLine("新的SQLite数据库文件已创建。"); } // 创建SQLite连接 using (SQLiteConnection connection = new SQLiteConnection($"Data Source={sqliteFilePath};Version=3;")) { connection.Open(); // 遍历每个工作表 foreach (Worksheet sheet in workbook.Worksheets) { string tableName = sheet.Name; // 获取第一行作为列名 var columns = sheet.Rows[0].CellList; string createTableQuery = $"CREATE TABLE IF NOT EXISTS [{tableName}] ("; foreach (var column in columns) { createTableQuery += $"[{column.Value}] TEXT,"; } createTableQuery = createTableQuery.TrimEnd(',') + ");"; // 创建表 using (SQLiteCommand createTableCommand = new SQLiteCommand(createTableQuery, connection)) { createTableCommand.ExecuteNonQuery(); } // 插入数据 for (int i = 1; i < sheet.Rows.Length; i++) // 跳过第一行 { var row = sheet.Rows[i]; string insertQuery = $"INSERT INTO [{tableName}] VALUES ("; foreach (var cell in row.CellList) { insertQuery += $"'{cell.Value?.Replace("'", "''")}',"; // 防止SQL注入 } insertQuery = insertQuery.TrimEnd(',') + ");"; using (SQLiteCommand insertCommand = new SQLiteCommand(insertQuery, connection)) { insertCommand.ExecuteNonQuery(); } } } connection.Close(); workbook.Dispose(); } Console.WriteLine("Excel数据已成功写入新的SQLite数据库!"); } } }
用 C# 将数据从数据库导出到 Excel 文件
同样,我们可以利用数据库操作模块从数据库中读取数据,然后创建 Workbook 对象并使用 CellRange.Value 属性将读取的数据写入 Excel 工作簿中,从而实现从数据库导出数据到 Excel 文件的功能。
以下步骤和代码以 SQLite 数据库为例,展示了如何将数据库中的数据导出到 Excel 文件:
using System.Data; using System.Data.SQLite; using Spire.Xls; namespace SQLiteToExcel { class Program { static void Main(string[] args) { // SQLite数据库的文件路径 string sqliteFilePath = "示例.db"; // Excel文件的保存路径 string excelFilePath = "output/数据库导出到Excel.xlsx"; // 创建一个新的Workbook实例 Workbook workbook = new Workbook(); // 清空默认的工作表 workbook.Worksheets.Clear(); // 创建SQLite连接 using (SQLiteConnection connection = new SQLiteConnection($"Data Source={sqliteFilePath};Version=3;")) { connection.Open(); // 获取所有表的名称 DataTable tables = connection.GetSchema("Tables"); // 遍历每个表 foreach (DataRow tableRow in tables.Rows) { string tableName = tableRow["TABLE_NAME"].ToString(); // 创建新的工作表 Worksheet sheet = workbook.Worksheets.Add(tableName); // 获取表数据 string selectQuery = $"SELECT * FROM [{tableName}]"; using (SQLiteCommand command = new SQLiteCommand(selectQuery, connection)) { using (SQLiteDataReader reader = command.ExecuteReader()) { // 获取列名并写入到第一行 for (int col = 0; col < reader.FieldCount; col++) { sheet.Range[1, col + 1].Value = reader.GetName(col); } // 设置表头字体样式 sheet.Rows[0].Style.Font.IsBold = true; sheet.Rows[0].Style.Font.Size = 12; // 插入数据行 int rowIndex = 2; while (reader.Read()) { for (int col = 0; col < reader.FieldCount; col++) { sheet.Range[rowIndex, col + 1].Value = reader.GetValue(col).ToString(); // 自动调整列宽 sheet.AutoFitColumn(col + 1); } // 设置数据行的字体样式 sheet.Rows[rowIndex - 1].Style.Font.Size = 11; rowIndex++; } } } } connection.Close(); } // 保存Excel文件 workbook.SaveToFile(excelFilePath); workbook.Dispose(); Console.WriteLine("数据已成功导出到Excel文件!"); } } }
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询慧都在线客服 ;技术交流Q群(767755948)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:慧都网在许多企业应用程序中,从 Visio 文件读取形状数据是一项常见需求,因为这些应用程序中的图表都包含有意义的元数据。本教程将借助Aspose.Diagram,以清晰实用的方式指导您使用 C# 读取形状数据。
PDF 的页面大小决定了其内容的显示、打印或处理方式。在准备打印、转换格式或标准化布局时,我们通常需要更改PDF文档的纸张大小。在本教程中,您将学习如何使用 Java 编辑任何 PDF 文件的页面大小。我们将通过完整的代码示例,逐步指导您完成操作。
本文主要介绍如何使用DevExpress WPF Grid控件中的节点(Nodes)概述,欢迎下载最新版组件体验!
本教程提供DevExpress WinFormsWinExplorer视图的基本信息,欢迎下载最新版组件体验!
专业的.NET Office套件,涵盖office文档创建、编辑、转换、管理和OCR内容识别等操作
Spire.Doc for .NETSpire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。
Spire.XLS for .NETSpire.XLS for .NET是专业.NET Excel组件,快速完成对Excel各类编程操作
Spire.PDF for .NETSpire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
Spire.Office for WPFSpire.Office for WPF是一款包含e-iceblue所有WPF文档管理组件的套包。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号