{转}Excel 导入数据到GridControl中的方法

DevExpress学习之GridControl导入导出至EXCEL 导出: private void EXCELout_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Title = "导出Excel"; saveFileDialog.Filter = "Excel文件(*.xls)|*.xls"; 阅读详情
private void simpleButton1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "Excel文件";
            ofd.FileName = "";
            ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            ofd.Filter = "所有文件(*.*)|*.*|Excel2003文件(*.xls)|*.xls|Excel2007文件(*.xlsx)|*.xlsx";
            ofd.ValidateNames = true;
            ofd.CheckFileExists = true;
            ofd.CheckPathExists = true;
            string strName = string.Empty;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                strName = ofd.FileName;
            }
            if (strName == "")
            {
                XtraMessageBox.Show("没有选择Excel文件!无法进行数据导入");
                return;
            }
            else
            {
                try
                {
                    DataSet myDs = new DataSet();
                    string text = string.Format("Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '{0}';Extended Properties=Excel 8.0", strName);
                    string excelFirstTableName = GetExcelFirstTableName(text);
                    myDs.Tables.Clear();
                    myDs.Clear();
                    this.gridControl1.DataSource = null;
                    OleDbConnection selectConnection = new OleDbConnection(text);
                    OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(string.Format("select * from [{0}]", excelFirstTableName), selectConnection);
                    oleDbDataAdapter.Fill(myDs);
                    this.gridControl1.DataSource = myDs.Tables[0];
                    this.gridView1.PopulateColumns();
                }
                catch (Exception ex)
                {
                    XtraMessageBox.Show("从电子表格文件中装载数据异常!", ex.Message);
                }
            }
        }

        /// <summary>
        /// 返回Excel第一个工作表表名
        /// </summary>
        /// <param name="connectstring">excel连接字符串</param>
        /// <returns></returns>
        public static string GetExcelFirstTableName(string connectstring)
        {
            using (OleDbConnection connection = new OleDbConnection(connectstring))
            {
                string tableName = string.Empty;
                if (connection.State == ConnectionState.Closed)
                    connection.Open();
                DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                if (dt != null && dt.Rows.Count > 0)
                {
                    tableName = ConvertTo<string>(dt.Rows[0][2]);
                }
                return tableName;
            }
        }


        /// <summary>
        /// 将数据转换为指定类型
        /// </summary>
        /// <typeparam name="T">转换的目标类型</typeparam>
        /// <param name="data">转换的数据</param>
        public static T ConvertTo<T>(object data)
        {
            if (data == null || Convert.IsDBNull(data))
                return default(T);

            object obj = ConvertTo(data, typeof(T));
            if (obj == null)
            {
                return default(T);
            }
            return (T)obj;
        }

        /// <summary>
        /// 将数据转换为指定类型
        /// </summary>
        /// <param name="data">转换的数据</param>
        /// <param name="targetType">转换的目标类型</param>
        public static object ConvertTo(object data, Type targetType)
        {
            if (data == null || Convert.IsDBNull(data))
            {
                return null;
            }
            Type type2 = data.GetType();
            if (targetType == type2)
            {
                return data;
            }
            if (((targetType == typeof(Guid)) || (targetType == typeof(Guid?))) && (type2 == typeof(string)))
            {
                if (string.IsNullOrEmpty(data.ToString()))
                {
                    return null;
                }
                return new Guid(data.ToString());
            }
            if (targetType.IsEnum)
            {
                try
                {
                    return Enum.Parse(targetType, data.ToString(), true);
                }
                catch
                {
                    return Enum.ToObject(targetType, data);
                }
            }
            if (targetType.IsGenericType)
            {
                targetType = targetType.GetGenericArguments()[0];
            }
            return Convert.ChangeType(data, targetType);
        }

DEV GridControl导入导出Excel文件 - 简单表格数据导入(Microsoft.Office自带) 1、命名空间 using DevExpress.XtraEditors; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Views.Grid; using System; using System.Data; using System.Windows.Forms; using Microsoft.Office.Interop.Exce... 阅读详情

相关推荐

使用DevExpress导出GridControl控件数据到excel文件

使用DevExpress可以实现将界面的GridControl的内容直接导出到excel文件,一般实现方法如下所示: public void export(GridControl gridControl1) { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveF

l527719041的博客 6219

Excel 导入数据到GridControl中的方法

private void simpleButton1_Click(object sender, EventArgs e)        {            OpenFileDialog ofd = new OpenFileDialog();            ofd.Title = "Excel文件";            ofd.FileName = "";            o...

jiidd的专栏 614

WPF DevExpress的GridControl数据,表格数据导出到excel

DevExpress的GridControl数据导出excel 在xaml代码中定位到要导出数据的那个gridcontrol,在相应的view中取好名字 比如 要导出这个TableView的数据 <dxg:GridControl.View> <dxg:TableView Name="CodeTable" AllowPerPixelScrolling="True" Sho...

weixin_44898911的博客 1081

DEV GridControl导入导出Excel文件 - 简单表格数据导入(NPOI方式三)

1、命名空间 using System.IO; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; 2、代码 #region NPOI方式 /// <summary> /// 本机无需安装Microsoft Excel ...

BaiCai的优快云 957

WinForms中GridControl的Excel导入导出实战:从导出到导入的完整指南

在业务系统开发中,数据表格与Excel之间的数据交换是最高频的需求之一。如何让界面上展示的数据快速导出为Excel文件,同时又能将外部表格数据准确导入系统,成为许多.NET开发者的必修课。针对这一场景,DevExpress的GridControl提供了高效的导出API,可保留列宽、样式与筛选状态,大幅减少手工拼接成本;而导入则可借助NPOI等成熟库,灵活处理各种格式与脏数据。本文从数据管理的基本概念出发,深入剖析导出选项控制、筛选结果导出、汇总行处理,以及导入时的类型转换与列映射等核心技术,并结合大数据量下

weixin_34101914的博客 67

WinForm中DevExpress GridControl与Excel导入导出实战:方案选型、数据校验与性能优化

在桌面应用开发中,表格数据处理与Excel文件交互是高频需求,尤其在涉及复杂业务报表、数据迁移及批量录入场景时。开发者常面临数据类型转换、格式兼容、大数据量卡顿等挑战。围绕DataTable作为数据中转核心,对比了COM组件、OLEDB、NPOI与EPPlus等主流Excel读写方案,重点解析了DevExpress GridControl的焦点行与选中行处理、列格式统一、剪贴板交互等细节。通过引入DataSource绑定、ValidateRow校验、批量入库等工程实践,提供了一套从界面展示到文件导入导出的完

weixin_27918373的博客 225

DEV GridControl导入导出Excel文件 - 简单表格数据导入(NPOI方式二)

1、命名空间 using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; using NPOI.POIFS.FileSystem; using NPOI.XSSF.UserModel; 2、代码 public DataSet ImportExcelTest(string filePath) { DataS...

BaiCai的优快云 501

C#实现给DevExpress中GridView表格创建指定的空白行、然后将Excel中选中的数据粘贴到GridView表格中

一、实现效果 测试数据内容如下: 二、实现方法 2.1、给GridView表格创建指定的空白行 #region 创建空白行 /// <summary> /// 创建指定空白行数 /// </summary> /// <param name="gridControl"></param> /// <param name="gridView".

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2423

GridControl导出Excel样式设置

GridControl导出Excel提供了现成的方法ExportToXls,简单使用方法: private void barExport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { SaveFileDialog fileDialog = new SaveFile...

肥嘟嘟左卫门 4244

Excel导入导出GridControl特别简单版.zip

Excel导入导出GridControl特别简单版,操作简单明了,我现在用的就是这个GridControl的导入导出,该导入导出是根据DevExpress里面的GridControl工具和SaveFileDialog工具来使用的,特别简单方便,有需要的朋友可以下载,真的简单

单卡也能玩转Qwen2.5-VL微调!3090实测Grounding任务调参技巧大全

本文详细介绍了如何在单张RTX 3090显卡上,通过梯度累积、BF16混合精度训练、梯度检查点等关键技术,成功微调Qwen2.5-VL多模态大模型以完成Grounding视觉定位任务。文章提供了从数据处理、参数配置到训练监控的完整实战调参技巧,为资源有限的开发者提供了可行的解决方案。

weixin_29098117的博客 424

DEV GridControl导入导出Excel文件 - 简单表格数据导入(NPOI方式一)

1、命名空间 using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; using NPOI.POIFS.FileSystem; using NPOI.XSSF.UserModel; 2、代码 public System.Data.DataTable ImportExcel(string strFileName) { ...

BaiCai的优快云 551

贝塞尔曲线原理--曲线生成--路径规划--matlab代码

贝塞尔曲线有着很多特殊的性质, 在图形设计和路径规划中应用都非常广泛, 在路径规划中贝塞尔曲线完全由其控制点决定其形状, n个控制点对应着n-1阶的贝塞尔曲线,并且可以通过递归的方式来绘制.

bob595078694的博客 1万+

DEV GridControl导入导出Excel文件 - 导出多表到多个sheet页

1、命名空间 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; 2、代码 public class ViewExportM { ...

BaiCai的优快云 2620

安卓无障碍服务保活实战:如何用AccessibilityService实现后台常驻(附完整代码)

本文深入解析如何利用Android无障碍服务(AccessibilityService)实现后台服务保活,涵盖多版本系统适配、前台服务集成、开机自启机制等关键技术。通过详细的Kotlin代码示例和合规性指导,帮助开发者构建稳定可靠的后台服务解决方案,同时避免因滥用无障碍服务导致的应用下架风险。

milk5的博客 1073

基于Coze平台从零构建AI智能体:以测试用例生成为例的实战指南

在人工智能技术快速发展的今天,大语言模型(LLM)和提示词工程(Prompt Engineering)已成为构建智能应用的核心技术。其原理在于通过自然语言指令引导模型完成特定任务,其技术价值在于极大地降低了AI应用开发的门槛,使非专业开发者也能快速实现想法。这一技术广泛应用于自动化办公、智能客服、内容生成等场景。本文聚焦于字节跳动旗下的Coze平台,该平台通过可视化工作流编排和预置技能,将上述技术封装为易用的工具。文章以“根据产品需求文档(PRD)自动生成测试用例”这一具体场景为例,详细拆解了从需求分析、工

weixin_30617695的博客 337

C#之GridControl导出为Excel

private void ToExcelbtn_Click(object sender, EventArgs e) { try { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Excel files (*.xls)|*.xls";

qq_37482544的博客 962

Unreal5 从入门到精通之 学习Niagara特效系统

UE5 Niagara粒子系统解析 Niagara是UE5中的高性能粒子特效系统,相比传统粒子系统具有完全可编程性和可视化节点编辑两大特点。核心单元发射器(Emitter)分为模板发射器(预设效果如喷泉、火焰)和空白发射器(高度自定义)。系统提供13种预设模板,包括吹飞粒子、五彩纸屑爆发、动态光束等常见特效。 Niagara采用三级模块化设计: 系统级:全局参数设置与更新 发射器级:控制粒子生成规则与行为 粒子级:处理单个粒子的生命周期和渲染 关键模块包括初始化粒子属性、物理模拟、颜色渐变等,支持GPU加速

TxNet 1122

DevExpress- GridControl数据导出到EXCEL

将DevExpress-GridControl数据导出到EXCEL,目前用过两种,一为利用GridControl函数操作,一为用流(IO)操作.区别在于前者可以将你在GridControl所见格式全部导入EXCEL,比如有时候我们在Bands里面拖拽出来的Title样式,后者最大优点在于速度很快,亲测10W条数据导出只需2秒左右; No.1:用GridControl函数导出...

weixin_30896511的博客 256

【四足机器人项目实战】四足机器人运动学、动力学模型

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、四足机器人实际模型的物理难点二、四足机器人运动学模型1.方法一:DH法建立运动学模型(1)运动学建模构型方法(2)运动学模型描述方法1、基于DH法四足机器人单腿运动学模型公式推导(0)DH法科普1)原理2)实现过程3)评价(1)四足机器人的建模规则、坐标系定义及实物参数确定1)标准Denavit-Hartenberg法建模规则2)单腿运动学模型坐标系定义示意图及简化模型3)

qq_35635374的博客 1万+

嵌入式工程师成长之路(10)——项目举例

送给大学毕业后找不到奋斗方向的你(每周不定时更新)

云轩阁 5万+
上一篇: gridcontrol 设置某行某列的默认值
下一篇: {转}C#使用微软语言包来获取中文汉字的拼音、拼音首字母、中文繁体
chenmingfa110
博客等级 码龄16年 64粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值