如何通过excel导入相关信息呢?还有用户打开excel文件时,可以根据自己的需求一部分数据进入程序中呢?
怎么实现?(数据导入到TextBox控件)

解决方案 »

  1.   

    给你参考一下 我这是一个通过List<T>数据源的导出,可以改成你自己的 
    /// <summary>
            /// 导出excel
            /// </summary>
            private void ExcelExport()
            {
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel.Workbook workbook;
                Microsoft.Office.Interop.Excel.Worksheet worksheet;
                excel.Visible = true;                            //是Excel可见
                workbook = excel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
                worksheet = (Worksheet)workbook.Worksheets[1];
                System.Data.DataTable dtt = new System.Data.DataTable();
                DataColumn dcCode = new DataColumn(MultiLanguage_Column_DictionaryCode);
                DataColumn dcName = new DataColumn(MultiLanguage_Column_DictionaryName);
                DataColumn dcPostCode = new DataColumn(MultiLanguage_Column_PostCode); 
                DataColumn dcPostName = new DataColumn(MultiLanguage_Column_PostName);
                DataColumn dcDepartmentTypeCode = new DataColumn(MultiLanguage_Column_DepartmentTypeCode); 
                DataColumn dcDepartmentType = new DataColumn(MultiLanguage_Column_DepartmentTypeName);
                DataColumn dcAccounttingSystem = new DataColumn(MultiLanguage_Column_AccountingSystemName);
                DataColumn dcParentDepartmentName = new DataColumn(MultiLanguage_Column_ParentDepartment);
                DataColumn dcParentDepartmentCode = new DataColumn(MultiLanguage_Column_ParentCode);
                dtt.Columns.Add(dcCode);
                dtt.Columns.Add(dcName);
                dtt.Columns.Add(dcParentDepartmentCode);
                dtt.Columns.Add(dcParentDepartmentName);
                dtt.Columns.Add(dcDepartmentTypeCode);
                dtt.Columns.Add(dcDepartmentType);
                dtt.Columns.Add(dcPostCode);
                dtt.Columns.Add(dcPostName);
                dtt.Columns.Add(dcAccounttingSystem);
                DataRow dr;
                List<DepartmentExtend> extendDepartment = new List<DepartmentExtend>();
                extendDepartment = (List<DepartmentExtend>)this.gridView_Department.DataSource;
                foreach (DepartmentExtend type in extendDepartment)
                {
                    dr = dtt.NewRow();
                    dr[MultiLanguage_Column_DictionaryCode] = "'"+type.LayerCode;
                    dr[MultiLanguage_Column_DictionaryName] = type.Name;
                    var parmentDepartment = this.m_FromDBList.Find(x=>x.ID== type.ParentID);
                    if (parmentDepartment == null)
                        dr[MultiLanguage_Column_ParentCode] = "";
                    else
                    {
                        dr[MultiLanguage_Column_ParentCode] = "'" + parmentDepartment.LayerCode;
                    }
                    dr[MultiLanguage_Column_ParentDepartment] = type.ParentDepartmentName;
                    dr[MultiLanguage_Column_PostCode] = "'"+ type.DepartmentPrincipalPost.LayerCode;
                    dr[MultiLanguage_Column_PostName] = type.DepartmentPrincipalPost.Name;
                    dr[MultiLanguage_Column_DepartmentTypeCode] ="'"+type.DepartmentType.LayerCode;
                    dr[MultiLanguage_Column_DepartmentTypeName] = type.DepartmentType.Name;
                    dr[MultiLanguage_Column_AccountingSystemName] = type.AccountingSystem.Name;
                    dtt.Rows.Add(dr);
                }
                for (int i = 1; i < dtt.Columns.Count + 1;i++ )    //设置表头
                    worksheet.Cells[1, i] = dtt.Columns[i-1].ColumnName;
                if (dtt.Rows.Count > 0)
                {
                    for (int j = 0; j < dtt.Columns.Count; j++)                    for (int i = 0; i < dtt.Rows.Count; i++)
                        {
                            worksheet.Cells[i + 2, j + 1] =dtt.Rows[i][j];
                        }
                }
            }