zoukankan      html  css  js  c++  java
  • C# Excel 读取导入数据库

    使用Aspose.Cells组件。

    表格第一行为表头合并,第二行为数据名称,从第三行开始数据。

       if (xtraOpenFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    if (propertyDatas != null)
                    {
                        propertyDatas.Clear();
                    }
                    Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(xtraOpenFileDialog1.FileName);
                    var worksheets = workbook.Worksheets;
                    propertyDatas = new List<PropertyData>();
                    foreach (var sheet in worksheets)
                    {
                        List<string> list = new List<string>();
                        List<string> group = new List<string>();
    
                        Dictionary<string, string> DGroup_Name = new Dictionary<string, string>();
    
                        for (int i = 0; i <= sheet.Cells.MaxDataColumn; i++)
                        {
                            list.Add(sheet.Cells[1, i].StringValue);
    
                            if(sheet.Cells[0, i].IsMerged)
                            {
                                var range=    sheet.Cells[0, i].GetMergedRange();
                                group.Add(sheet.Cells[range.FirstRow, range.FirstColumn].StringValue);
                            }
                            else
                            {
                                group.Add(sheet.Cells[0, i].StringValue);
                            }
                        
                        }
                    
                        // Excel 的第一行 为标题行,第一列为模型编号列
                        for (int j = 2; j <= sheet.Cells.MaxDataRow; j++)
                        {
                            for (int i = 0; i <= sheet.Cells.MaxDataColumn; i++)
                            {
                                PropertyData property = new PropertyData();
                                property.ModelCode = sheet.Cells[j, 0].StringValue;
                                property.Name = list[i];
                                if (sheet.Cells[j, i].Type == CellValueType.IsNull)
                                {
                                    property.Value = "";
                                }
                                else
                                {
                                    property.Value = sheet.Cells[j, i].StringValue;
                                }
    
                                property.GroupName = group[i];
                                //添加到集合中
                                propertyDatas.Add(property);
                            }
                           
                        }
                    }
                    gridControl1.DataSource = null;
                    gridControl1.DataSource = propertyDatas;
                    simpleButton2.Enabled = true;
                }

  • 相关阅读:
    动态规划解决数字三角形问题
    动态规划,贪心,分治
    7-3 两个有序序列的中位数 (20分) log n的解法
    二分查找 单峰数组中的最大值 O(log n)
    数据库连接池 C3P0和 Druid
    SQL注入问题
    MATLAB spectrogram命令
    JDBC工具类
    Egret--拼接Rect实现用于新手引导的扣洞
    egrte-取消居中约束
  • 原文地址:https://www.cnblogs.com/w2011/p/11926118.html
Copyright © 2011-2022 走看看