zoukankan      html  css  js  c++  java
  • MyXLS案例

    using System;
    using System.Data;
    using org.in2bits.MyXls;
    namespace Maticsoft.Common
    {
        /// <summary>
        /// 操作EXCEL导出数据报表的类
        /// Copyright (C) Maticsoft
        /// </summary>
        public class DataToExcel
        {
            public DataToExcel()
            {
            }
    
            /// <summary>
            /// 绑定数据库生成XLS报表
            /// using org.in2bits.MyXls;
            /// </summary>
            /// <param name="ds">获取DataSet数据集</param>
            /// <param name="xlsName">报表表名</param>
            public void toExcel(DataTable table, string xlsName)
            {
                XlsDocument xls = new XlsDocument();
                xls.FileName = xlsName + ".xls";
                int rowIndex = 1;
                int colIndex = 0;
                Worksheet sheet = xls.Workbook.Worksheets.Add("Sheet1");
                Cells cells = sheet.Cells;
                foreach (DataColumn col in table.Columns)
                {
                    colIndex++;
                    cells.Add(1, colIndex, col.ColumnName);
                }
    
                foreach (DataRow row in table.Rows)
                {
                    rowIndex++;
                    colIndex = 0;
                    foreach (DataColumn col in table.Columns)
                    {
                        colIndex++;
                        Cell cell;
                        if (col.DataType == Type.GetType("System.Int32"))
                        {
                            if (Str2Int(row[col.ColumnName].ToString()) != 0)
                            {
                                cell = cells.Add(rowIndex, colIndex, Str2Int(row[col.ColumnName].ToString()));
                            }
                        }
                        else if (col.DataType == Type.GetType("System.Decimal") || col.DataType == Type.GetType("System.Double"))
                        {
                            if (Str2Double(row[col.ColumnName].ToString()) != 0)
                            {
                                cell = cells.Add(rowIndex, colIndex, Str2Double(row[col.ColumnName].ToString()));
                            }
                        }
                        else
                        {
                            if (!row[col.ColumnName].ToString().Equals("1900-01-01"))
                                cell = cells.Add(rowIndex, colIndex, row[col.ColumnName].ToString());
                        }          
                    }
                }
                xls.Send();
            }
    
            public DataTable FromExcel(string filepath)
            {
                XlsDocument xls = new XlsDocument(filepath);
                Worksheet sheet = xls.Workbook.Worksheets["Sheet1"];
                DataTable dt = new DataTable();
                DataColumn cl = new DataColumn();
                cl = new DataColumn("ID", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("EID", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("DID", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("Type", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("Model", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("Custodian", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("StorageUnits", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("Money", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("Status", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("BuyTime", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("StorageSites", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("FinancialNumbers", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);
                cl = new DataColumn("Remark", System.Type.GetType("System.String"));
                dt.Columns.Add(cl);  
                for (int i = 2; i < sheet.Rows.Count; i++)
                {
                    DataRow row = dt.NewRow();
                    row[0] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(1).Value;
                    row[1] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(2).Value;
                    row[2] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(3).Value;
                    row[3] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(4).Value;
                    row[4] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(5).Value;
                    row[5] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(6).Value;
                    row[6] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(7).Value;
                    row[7] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(8).Value;
                    row[8] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(9).Value;
                    row[9] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(10).Value;
                    row[10] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(11).Value;
                    row[11] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(12).Value;
                    row[12] = sheet.Rows[ushort.Parse(i.ToString())].GetCell(13).Value;
                    dt.Rows.Add(row);
                }
                return dt;
            }
    
            public double Str2Double(string str)
            {
                double num = 0;
                try
                {
                    num = Convert.ToDouble(str);
                }
                catch
                { }
                return num;
            }
    
            public int Str2Int(string str)
            {
                int num = 0;
                try
                {
                    num = Convert.ToInt32(str);
                }
                catch
                { }
                return num;
            }
        }
    }
  • 相关阅读:
    NYOJ 260
    NYOJ 271
    [转载]《博客园精华集》Winform筛选结果(共105篇)
    在DataGridView控件中加入ComboBox下拉列表框的实现
    给SQL补充一个查看表结构的存储过程
    编写自定义控件之下拉式属性
    PropertyGrid中的枚举显示为中文(转)
    DataGridView 中合并单元格
    树TreeView控件与DataTable交互添加节点(最高效的方法)
    通过键盘方向键控制TreeView节点的移动
  • 原文地址:https://www.cnblogs.com/varorbc/p/4214710.html
Copyright © 2011-2022 走看看