C# winform Excel-DataGridView-Sql导入导出操作,总结如下。

初学总结: 如果有什么指教请留言,谢谢。

首先我的界面是这样


导入:选择文件-选择表-DataGridView中显示-保存到数据库

导出:(这边少了一个获取当前数据库所有表按钮)-选择表-DataGridView-导出

引用如下


        private int _ReturnStatus;
        private string _ReturnMessage;
        System.Data.DataTable table = new System.Data.DataTable();
        DataSet ds = new DataSet();
        System.Windows.Forms.OpenFileDialog openFileDialog1 = new OpenFileDialog();

下面进入导入代码:

选择文件(目的:获取当前Excel所有sheet)

 public System.Data.DataTable SelectFile(string fileName)//获取表名
        {
            CmbDemand.Items.Clear();
            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            if (xlApp == null)
            {
                _ReturnStatus = -1;
                _ReturnMessage = "无法创建Excel对象,可能您的计算机未安装Excel";
                return null;
            }
            //判断文件是否被其他进程使用            
            Microsoft.Office.Interop.Excel.Workbook workbook;
            try
            {
                workbook = xlApp.Workbooks.Open(fileName, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, 1, 0);
            }
            catch
            {
                _ReturnStatus = -1;
                _ReturnMessage = "Excel文件处于打开状态,请保存关闭";
                return null;
            }
            //获得所有Sheet名称
            int n = workbook.Worksheets.Count;
            string[] SheetSet = new string[n];
            System.Collections.ArrayList al = new System.Collections.ArrayList();
            //循环一次获取一次表名
            for (int i = 1; i <= n; i++)
            {
                SheetSet[i - 1] = ((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[i]).Name;
                CmbDemand.Items.Add(SheetSet[i - 1]);
            }
            //释放Excel相关对象
            workbook.Close(null, null, null);
            xlApp.Quit();
            if (workbook != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
                workbook = null;
            }
            if (xlApp != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
                xlApp = null;
            }
            GC.Collect();
 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值