OpenFileDialog选择文件并获取Excel数据/开窗选择保存路径

2024-04-09 04:08

本文主要是介绍OpenFileDialog选择文件并获取Excel数据/开窗选择保存路径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

public static System.Data.DataTable ExcelToDatatalbe(int startRow)//导入{OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = "Excel文件|*.xls;*.xlsx";ofd.Title = "选择Excel文件";ofd.Multiselect = false;if (ofd.ShowDialog() == DialogResult.OK){Aspose.Cells.Workbook book = new Aspose.Cells.Workbook();book.Open(ofd.FileName);Aspose.Cells.Worksheet sheet = book.Worksheets[0];Cells cells = sheet.Cells;//获取excel中的数据保存到一个datatable中System.Data.DataTable dt_Import = cells.ExportDataTableAsString(startRow, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, false);// dt_Import.return dt_Import;}elsereturn new System.Data.DataTable();}
/// <summary>/// 从Excel获取数据  NPOI/// </summary>/// <param name="startRow"></param>/// <returns></returns>public static System.Data.DataTable GetExcelData(int startRow, out string msg){#region NPOI方式OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = "Excel文件|*.xls;*.xlsx";ofd.Title = "选择Excel文件";ofd.Multiselect = false;msg = "";if (ofd.ShowDialog() == DialogResult.OK){bool hasTitle = true;string fileName = ofd.FileName;Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();Sheets sheets;object oMissiong = System.Reflection.Missing.Value;Microsoft.Office.Interop.Excel.Workbook workbook = null;System.Data.DataTable data = new System.Data.DataTable();try{if (app == null) return null;workbook = app.Workbooks.Open(fileName, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong,oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong);sheets = workbook.Worksheets;//将数据读入到DataTable中Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(1);//读取第一张表 if (worksheet == null) return null;int iRowCount = worksheet.UsedRange.Rows.Count;int iColCount = worksheet.UsedRange.Columns.Count;//生成列头for (int i = 0; i < iColCount; i++){var name = "column" + i;if (hasTitle){var txt = ((Microsoft.Office.Interop.Excel.Range)worksheet.Cells[startRow, i + 1]).Text.ToString();if (!string.IsNullOrEmpty(txt)) name = txt;}while (data.Columns.Contains(name)) name = name + "_1";//重复行名称会报错。data.Columns.Add(new DataColumn(name, typeof(string)));}//生成行数据Microsoft.Office.Interop.Excel.Range range;int rowIdx = hasTitle ? 2 : 1;for (int iRow = rowIdx; iRow <= iRowCount; iRow++){DataRow dr = data.NewRow();for (int iCol = 1; iCol <= iColCount; iCol++){range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[iRow, iCol];dr[iCol - 1] = (range.Value2 == null) ? "" : range.Text.ToString();}data.Rows.Add(dr);}}catch (Exception ex){ExceptionUtil.DataCL_HTTP(ex, "", "", FileUtil.GetCurSourceFileName());msg = ex.Message;return null;}finally{workbook.Close(false, oMissiong, oMissiong);System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);workbook = null;app.Workbooks.Close();app.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject(app);app = null;}return data;}#endregionreturn null;}
//选择文件夹
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
if (folderBrowserDialog.ShowDialog(this) == DialogResult.OK)
{string FolderName = folderBrowserDialog.SelectedPath;
}

 

这篇关于OpenFileDialog选择文件并获取Excel数据/开窗选择保存路径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/887141

相关文章

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

C#实现将Excel工作表拆分为多个窗格

《C#实现将Excel工作表拆分为多个窗格》在日常工作中,我们经常需要处理包含大量数据的Excel文件,本文将深入探讨如何在C#中利用强大的Spire.XLSfor.NET自动化实现Excel工作表的... 目录为什么需要拆分 Excel 窗格借助 Spire.XLS for .NET 实现冻结窗格(Fro

使用Python实现高效复制Excel行列与单元格

《使用Python实现高效复制Excel行列与单元格》在日常办公自动化或数据处理场景中,复制Excel中的单元格、行、列是高频需求,下面我们就来看看如何使用FreeSpire.XLSforPython... 目录一、环境准备:安装Free Spire.XLS for python二、核心实战:复制 Exce

pandas批量拆分与合并Excel文件的实现示例

《pandas批量拆分与合并Excel文件的实现示例》本文介绍了Pandas中基于整数位置的iloc和基于标签的loc方法进行数据索引和切片的操作,并将大Excel文件拆分合并,具有一定的参考价值,感... 目录一、Pandas 进行索引和切编程片的iloc、loc方法二、Pandas批量拆分与合并Exce

MySQL中的DELETE删除数据及注意事项

《MySQL中的DELETE删除数据及注意事项》MySQL的DELETE语句是数据库操作中不可或缺的一部分,通过合理使用索引、批量删除、避免全表删除、使用TRUNCATE、使用ORDERBY和LIMI... 目录1. 基本语法单表删除2. 高级用法使用子查询删除删除多表3. 性能优化策略使用索引批量删除避免

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p