[zz]winform导入excel

winfrom导入excel内容,要求能够excel中多个工作簿的内容。代码如下:

#region 导入excel数据
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
             openFileDialog.Filter = "表格文件 (*.xls)|*.xls";
             openFileDialog.RestoreDirectory = true;
             openFileDialog.FilterIndex = 1;
             if (openFileDialog.ShowDialog() == DialogResult.OK)
             {
                 Import(openFileDialog.FileName);
             }
        }

        /// <summary>
        /// 导入excel数据
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static bool Import(string filePath)
        {
            try
            {
                //Excel就好比一个数据源一般使用
                //这里可以根据判断excel文件是03的还是07的,然后写相应的连接字符串
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + "Extended Properties=Excel 8.0;";
                OleDbConnection con = new OleDbConnection(strConn);
                con.Open();
                string[] names = GetExcelSheetNames(con);
                if (names.Length > 0)
                {
                    foreach (string name in names)
                    {
                        OleDbCommand cmd = con.CreateCommand();
                        cmd.CommandText = string.Format(" select * from [{0}]", name);//[sheetName]要如此格式
                        OleDbDataReader odr = cmd.ExecuteReader();
                        while (odr.Read())
                        {
                            if (odr[0].ToString() == "序号")//过滤列头  按你的实际Excel文件
                                continue;
                           //数据库添加操作
                            /*进行非法值的判断
                             * 添加数据到数据表中
                             * 添加数据时引用事物机制,避免部分数据提交
                             * Add(odr[1].ToString(), odr[2].ToString(), odr[3].ToString());//数据库添加操作,Add方法自己写的
                             * */

                        }
                        odr.Close();
                    }
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        /// <summary>
         /// 查询表名
         /// </summary>
         /// <param name="con"></param>
         /// <returns></returns>
         public static string[] GetExcelSheetNames(OleDbConnection con)
         {
             try
             {
                System.Data.DataTable  dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new[] { null, null, null, "Table" });//检索Excel的架构信息
                 var sheet = new string[dt.Rows.Count];
                 for (int i = 0, j = dt.Rows.Count; i < j; i++)
                 {
                     //获取的SheetName是带了$的
                     sheet[i] = dt.Rows[i]["TABLE_NAME"].ToString();
                 }
                 return sheet;
             }
             catch
             {
                 return null;
             }
         }

        //下面这种方法获取excel Worksheets Name时,提示无法访问该exceL文件,所以改为上面获取工作簿名的方式

        ///// <summary>
        ///// 获得excel sheet所有工作簿名字
        ///// </summary>
        ///// <param name="filePath"></param>
        ///// <returns></returns>
        //public static string[] GetExcelSheetNames(string filePath)
        //{
        //    Microsoft.Office.Interop.Excel.ApplicationClass excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
        //    Microsoft.Office.Interop.Excel.Workbooks wbs = excelApp.Workbooks;
        //    Microsoft.Office.Interop.Excel.Workbook wb = wbs.Open(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        //    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        //    Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        //    int count = wb.Worksheets.Count;
        //    string[] names = new string[count];
        //    for (int i = 1; i <= count; i++)
        //    {
        //        names[i - 1] = ((Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[i]).Name;
        //    }
        //    return names;
        //}
        #endregion
时间: 2024-10-15 02:07:54

[zz]winform导入excel的相关文章

Winform导入Excel数据到数据库

public partial class ImportExcel : Form { AceessHelpers accessHelper = new AceessHelpers(); public ImportExcel() { InitializeComponent(); } private void btn_importExcelData(object sender, EventArgs e) { openFileDialog1.Title = "打开文件"; openFileDi

winform导入excel或者csv

if (txt01.Text != "") { this.lbzhantie.Items.Clear(); this.dtzhuanhuo.Rows.Clear(); if (txt01.Text.Contains(".xls")) { try { string strConn; // strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txt01.Text + ";E

[转]MATLAB导入Excel数据错误

今天在向Matlab 2013b中导入office2013 Excel文件时出现了如下图错误: 为此,通过在网上查找发现了解决办法,主要是因为Excel加载项中的" FoxitReader PDF Creator COM Add-in"选项引起的. 因此可以尝试以下解决办法来修改Excel文件加载项: 1.进入到"文件"->"选项": 2.点击"加载项"选项卡: (错误产生就是由于此加载项是活动的.) 3.在当前选项卡下

导入Excel用户表,调用存储过程

花了一天半的时间学习了一下导入Excel用户表,调用存储过程,主要是学习存储过程.因为之前没有具体在项目中应用过. 这里我们采用导入Excel到临时表,然后存储过程中读取临时表判断数据类型和数据格式,然后保存到正式表. 导入Excel采用spring 的POI技术. 本文内容较多,请选择性阅读. controller里面的代码: /**  * Excel导入用户表,调用存储过程,先导入临时表,再在存储过程中判断,判断通过后导入正式表,错误的则记录错误日志表中. lijianbo  *   * @

Thinkphp 用PHPExcel 导入Excel

搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有PHPExcel类库, 点这里下载 https://github.com/Zmwherein/PHPExcel.git 然后把它放在 \ThinkPHP\Library\Vendor(个人喜好, 能引入就行了) 如图: PHPExcel.php 类似一个入口文件. 可以进去看看里面写的方法是怎个跑法.

PLSQL导入Excel表中数据

PL/SQL 和SQL Sever导入excel数据的原理类似,就是找到一个导入excel数据的功能项,按照步骤走就是了.下面是一个些细节过程,希望对像我这样的菜鸟有帮助.  www.2cto.com 1.准备excel表. 右击数据表—选择edit data. 选择数据,右击,选择Copy to Excel 2.调整excel表 可以删除A列和F列,然后把你的数据粘到BCDE列,这样做的好处就是在导入excel的时候,绝对不会出现因为格式或其他文字问题导致错误. 3.准备导入 选择tool—O

SQL Server服务器上需要导入Excel数据的必要条件

SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Excel了.

点击按钮,导入excel

需为2003版本 private void button1_Click(object sender, EventArgs e)        {            string resultFile = "";            OpenFileDialog openFileDialog1 = new OpenFileDialog();            openFileDialog1.InitialDirectory = "D:";          

通过模板将数据导入EXCEL

在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e)        {            //将数据导入Excel中并设置Excel基本样式            ExcelHandle excelHandle = new ExcelHandle();            excelHandle.GenerateStudentsReports(this.dgvStudents);