• csharp: Importing or Exporting Data from Worksheets using aspose cell


    /// <summary>
        /// 涂聚文
        /// 20150728
        /// EXCEL win7 32位,64位OK
        /// </summary>
        public class ExcelHelperImport
        {
    
            /*
     http://www.cnblogs.com/wangrsh2010/archive/2012/03/21/2410182.html
     * http://npoi.codeplex.com/SourceControl/latest
     * http://sourceforge.net/projects/myxls/
    http://svn.code.sf.net/p/myxls/code/trunk myxls-code
     */
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="strFileName"></param>
            /// <param name="inumber"></param>
            /// <returns></returns>
            public static System.Data.DataTable ReadExcel(String strFileName,int inumber)
            {
                Workbook book = new Workbook();
                book.Open(strFileName); //过时
                Worksheet sheet = book.Worksheets[inumber];
                Cells cells = sheet.Cells;
                return cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);
            }
            /// <summary>
            /// geovindu 
            /// </summary>
            /// <param name="strFileName"></param>
            /// <param name="num"></param>
            /// <returns></returns>
            public static DataTable ImportExcel(string strFileName, int num)
            {
                Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(strFileName);
    
                ////Creating a file stream containing the Excel file to be opened
                //FileStream fstream = new FileStream(strFileName, FileMode.Open);
                ////Instantiating a Workbook object
                ////Opening the Excel file through the file stream
                //Workbook workbook = new Workbook(fstream);
    
                //Accessing the first worksheet in the Excel file
                Worksheet worksheet = workbook.Worksheets[num];
                Cells cells = worksheet.Cells;
                //Exporting the contents of 7 rows and 2 columns starting from 1st cell to DataTable
                //DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, 7, 2, true);
                DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, cells.MaxDataRow+1 , cells.MaxDataColumn+1 , false);
                //fstream.Close();
                return dataTable;
    
            }
    
            /// <summary>
            /// geovindu 涂聚文
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="data"></param>
            /// <param name="response"></param>
            private static void Export<T>(IEnumerable<T> data, HttpResponse response,string filename)
            {
                Workbook workbook = new Workbook();
                Worksheet sheet = (Worksheet)workbook.Worksheets[0];
    
                PropertyInfo[] ps = typeof(T).GetProperties();
                var colIndex = "A";
    
                foreach (var p in ps)
                {
    
                    sheet.Cells[colIndex + 1].PutValue(p.Name);
                    int i = 2;
                    foreach (var d in data)
                    {
                        sheet.Cells[colIndex + i].PutValue(p.GetValue(d, null));
                        i++;
                    }
    
                    colIndex = ((char)(colIndex[0] + 1)).ToString();
                }
    
                response.Clear();
                response.Buffer = true;
                response.Charset = "utf-8";
                response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
                response.ContentEncoding = System.Text.Encoding.UTF8;
                response.ContentType = "application/ms-excel";
                response.BinaryWrite(workbook.SaveToStream().ToArray());
                response.End();
            }
    
            /// <summary>
            /// Geovin Du
            /// </summary>
            /// <param name="dataTable"></param>
            /// <param name="fileName"></param>
            public static void ExportToExcel(DataTable dataTable, string fileName)
            {
                HttpContext context = HttpContext.Current;
                context.Response.Clear();
                foreach (DataColumn column in dataTable.Columns)
                {
                    context.Response.Write(column.ColumnName + ",");
                }
                context.Response.Write(Environment.NewLine);
     
                foreach (DataRow row in dataTable.Rows)
                {
                    for (int i = 0; i < dataTable.Columns.Count; i++)
                    {
                        context.Response.Write(row[i].ToString() + ",");
                    }
                    context.Response.Write(Environment.NewLine);
                }
                context.Response.ContentType = "application / ms - excel";
                context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv");
                context.Response.End();
            }
      
        }
    

      from: http://www.aspose.com/.net/excel-component.aspx

    https://github.com/heavenwing/WeiXinSDK

    https://github.com/heavenwing/MyWeChatPublic

    https://github.com/geffzhang/opendotnet

    https://github.com/jrsoftware/issrc

    http://sourceforge.net/projects/ibatisnet/files/ibatisnet/

    http://sourceforge.net/projects/nhibernate/files/?source=navbar

    http://sourceforge.net/projects/castleproject/files/?source=navbar

    https://github.com/castleproject/

     /// <summary>
            /// 获取工作表名称
            /// </summary>
            /// <param name="strFileName"></param>
            /// <returns></returns>
            private  static DataTable getDataSheetName(string strFileName)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("id", typeof(int));
                dt.Columns.Add("name", typeof(string));
               // Aspose.Cells.Workbook workbook = new Workbook();//4.0
                //workbook.Open(strFileName);//4.0
                Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(strFileName);// 7.0
                for(int i=0;i<workbook.Worksheets.Count;i++)
                {
                    dt.Rows.Add(i, workbook.Worksheets[i].Name);
                }
                return dt;
            }
    
            /// <summary>
            /// 获取工作表名称
            /// </summary>
            /// <param name="strFileName"></param>
            /// <param name="com"></param>
            public static void getSheetName(String strFileName, System.Windows.Forms.ComboBox com)
            {
                DataTable dt = getDataSheetName(strFileName);
                com.DataSource = dt;
                com.DisplayMember = "name";
                com.ValueMember = "id";
                com.AutoCompleteMode = AutoCompleteMode.Suggest;
                com.AutoCompleteSource = AutoCompleteSource.ListItems;
                KillExcelProceed();
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="strFileName">文件</param>
            /// <param name="inumber">第几个工作表</param>
            /// <returns></returns>
            public static System.Data.DataTable ReadExcel(String strFileName, int inumber)
            {
                Aspose.Cells.Workbook book = new Aspose.Cells.Workbook(strFileName);// 7.0
                //Workbook book = new Workbook();
                //book.Open(strFileName); // 4.0 过时
                //book.Worksheets.Count;
                Worksheet sheet = book.Worksheets[inumber];
                Cells cells = sheet.Cells;
                return cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);
            }
    

      

  • 相关阅读:
    ASP.NET MVC 3 学习笔记系列之Music Store(1)
    sql 拆分 逗号 函数
    软件开发项目的人力资源管理 团队配置问题探讨
    从某失败项目中学到的经验教训
    需求为王
    信息系统项目管理师考试经验分享
    JSP中文乱码问题及编码知识详解
    详解java中instanceof各种的用法
    mvc开源项目
    asp.net服务组件自动事务处理
  • 原文地址:https://www.cnblogs.com/geovindu/p/4683343.html
Copyright © 2020-2023  润新知