精华内容
下载资源
问答
  • excel 获取最后一列的列名

    千次阅读 2010-10-26 20:50:00
    <br />Sub Macro1()     Set myrng = Range("A1").CurrentRegion Dim aa As String   For i = 2 To 101  For j = 5 To myrng.Columns.Count  If myrng.Cells(i,...

    Sub Macro1()

     

     

    Set myrng = Range("A1").CurrentRegion

    Dim aa As String

     

    For i = 2 To 101

        For j = 5 To myrng.Columns.Count

            If myrng.Cells(i, j).Text <> "" Then

                aa = myrng.Cells(1, j).Value

            End If

        Next

        myrng.Cells(i, 3).Value = aa

    Next

     

     

    End Sub

    展开全文
  • NPOI取得Excel 的最后一行和最后一列

    万次阅读 2012-07-03 11:10:46
    //根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档  FileStream file = new FileStream("C:\test.xls", FileMode.Open, FileAccess.Read);    HSSFWorkbook workbook = new HSSFWorkbo

                    //根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档

                    FileStream file = new FileStream("C:\test.xls", FileMode.Open, FileAccess.Read);

     

                    HSSFWorkbook workbook = new HSSFWorkbook(file);

                    //获取excel的指定sheet"Rawdata"

                    Sheet sheet = workbook.GetSheet("Rawdata");

     

                    DataTable table = new DataTable();

                    //获取sheet的首行

                    Row headerRow = sheet.GetRow(0);

                    //最后一个方格的编号 即总的列数

                    int cellCount = headerRow.LastCellNum;

                     //最后一行的标号  即总的行数

                    int rowCount = sheet.LastRowNum;

    展开全文
  • 使用了个三方插件:Aspose.Cells用来操作Excel在里面修改了写了使用了一些方法一些方法 using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Web; using ...
    使用了一个三方插件:Aspose.Cells用来操作Excel
    在里面修改了写了使用了一些方法一些方法
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using System.Web;
    using System.Text;
    using System.Data;
    using System.Data.OleDb;
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
    using System.Configuration;
    using System.Drawing;
    using Aspose.Cells;
    
    namespace ISS.DF.Utilities.iDoc
    {
        public class ExcelHelper
        {
            #region 静态函数及变量
    
            private Workbook workbook;
            private Worksheet worksheet;
            private Dictionary<string, Worksheet> worksheets;
            private Worksheet currentWorksheet; //指定要操作的Excel工作薄,默认为第一个工作薄
    
            private string fullName;            //导出/导出Excel文件名称(全路径)
            private int maxRow;                 //包含数据或样式的最大行索引
            private int maxColumn;              //包含数据或样式的最大列索引
            public string FullName
            {
                get
                {
                    if (string.IsNullOrEmpty(fullName))
                        return ConfigurationManager.AppSettings["ExcelFullName"].ToString();
    
                    return fullName;
                }
                set
                { 
                    fullName = value;
                }
            }
            public int MaxRow
            {
                get { return maxRow; }
                set { maxRow = value; }
            }
            public int MaxColumn
            {
                get { return maxColumn; }
                set { maxColumn = value; }
            }
    
    
            #endregion
    
            #region 构造函数
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="isExport">是否从Excel导出数据</param>
            /// <param name="excelFullName">Excel文件名称(全路径)(为空则使用配置文件名称)</param>
            public ExcelHelper(bool isExport, string excelFullName)
            {
                this.FullName = excelFullName;
    
                if (isExport)
                {
                    workbook = new Workbook(this.FullName);
                    worksheets = new Dictionary<string, Worksheet>();
                    foreach (Worksheet worksheet in workbook.Worksheets)
                    {
                        worksheets.Add(worksheet.Name, worksheet);
                    }
                }
                else
                {
                    workbook = new Workbook();
                }
                currentWorksheet = workbook.Worksheets[0];
    
            }
            #endregion
    
            #region 导入函数之为当前sheet添加列表字段
            /// <summary>
            /// 在当前sheet列表最后添加列表字段及对应表字段数据
            /// </summary>
            /// <param name="cl">列表字段及对应表字段数据的字典</param>
            public void AddFieldAndDataAtLastField(Dictionary<string, ArrayList> cl)
            {
                int i = 0;
                MaxColumn = currentWorksheet.Cells.MaxColumn + 1;
    
                Cell cell;
                ArrayList alst;
    
                foreach (string key in cl.Keys)
                {
                    MaxColumn += i;
                    cell = currentWorksheet.Cells[0, MaxColumn];
                    cell.PutValue(key);
                    
                    alst = new ArrayList();
                    alst = cl[key];
    
                    for (int j = 0; j < alst.Count; j++)
                    {
                        cell = currentWorksheet.Cells[j + 1, MaxColumn];
                        cell.PutValue(alst[j].ToString());
                    }
                    i++;
                }
            }
            /// <summary>
            /// 在当前sheet列表指定行与列索引处添加表字段或表字段数据
            /// </summary>
            /// <param name="data">要添加的数据</param>
            /// <param name="row">当前sheet列表指定行索引</param>
            /// <param name="column">当前sheet列表指定列索引</param>
            public void AddDataAtField(string data, int row, int column)
            {
                Cell cell = currentWorksheet.Cells[row, column];
                cell.PutValue(data);
            }
            //最后一列指定行添加错误列
            public void AddDataAtMaxColumn(string data, int row)
            {
                MaxColumn = currentWorksheet.Cells.MaxColumn + 1;
                row = row - 1;
                Cell cell = currentWorksheet.Cells[row, MaxColumn];
                cell.PutValue(data);
            }
            //最后一列指定行添加错误列
            public void AddDataAtMaxColumn1(string data, int row)
            {
                MaxColumn = currentWorksheet.Cells.MaxColumn;
                row = row - 1;
                Cell cell = currentWorksheet.Cells[row, MaxColumn];
                cell.PutValue(data);
            }
    
            #endregion
    
            #region 导入函数之导入数据到Excel工作薄
    
            /// <summary>
            /// 将ArrayList数组数据,从"A1"列开始导入到Excel第一个工作薄
            /// </summary>
            /// <param name="list"></param>
            public void ExcuteImport(ArrayList list)
            {
                if (list.Count <= 0)
                {
                    throw new Exception("指定的导入数据源为空!");
                }
    
                currentWorksheet.Cells.ImportArrayList(list, 0, 0, true);
            }
            /// <summary>
            /// 将包含列名的DataTable数据表内容,从"A1"列开始导入到Excel第一个工作薄
            /// </summary>
            /// <param name="table">DataTable数据表</param>
            public void ExcuteImport(DataTable table)
            {
                if (table == null || table.Rows.Count <= 0)
                {
                    throw new Exception("指定的导入数据源为空!");
                }
    
                currentWorksheet.Cells.ImportDataTable(table, true, "A1");
                currentWorksheet.AutoFitColumns();
            }
            /// <summary>
            /// 将包含列名的dataReader数据内容导入到Excel第一个工作薄
            /// </summary>
            /// <param name="dataReader">dataReader数据内容</param>
            public void ExcuteImport(SqlDataReader dataReader)
            {
                if (!dataReader.HasRows)
                {
                    throw new Exception("指定的导入数据源为空!");
                }
    
                currentWorksheet.Cells.ImportDataReader(dataReader, true, 0, 0, false);
                currentWorksheet.AutoFitColumns();
            }
            /// <summary>
            /// 将包含列名的dataReader数据内容,从"A1"列开始导入到Excel第一个工作薄
            /// </summary>
            /// <param name="dataReader"></param>
            public void ExcuteImport(OleDbDataReader dataReader)
            {
                if (!dataReader.HasRows)
                {
                    throw new Exception("指定的导入数据源为空!");
                }
    
                #region 设置表头样式--注释
                //int styleIndex = workbook.Styles.Add();
                //Aspose.Cells.Style style = workbook.Styles[styleIndex];
                //style.Font.IsBold = true;
                //style.Font.Name = "Verdana";
                style.ForegroundColor = Color.White;
                //style.Pattern = BackgroundType.Solid;
                //style.Font.Size = 10;
    
                //Range range = worksheet.Cells.CreateRange(0, 0, 1, 4);
                //range.SetStyle(style);
                #endregion
    
                currentWorksheet.Cells.ImportDataReader(dataReader, true, 0, 0, false);
                currentWorksheet.AutoFitColumns();
            }
            /// <summary>
            /// 保存导入的Excel到磁盘
            /// </summary>
            public void SaveImport()
            {
                if (fullName.EndsWith(".xls", System.StringComparison.CurrentCultureIgnoreCase))
                {
                    workbook.Save(fullName, new XlsSaveOptions(SaveFormat.Excel97To2003));
                }
                else
                {
                    workbook.Save(fullName, new XlsSaveOptions(SaveFormat.Xlsx));
                }
            }
    
            /// <summary>
            /// 保存导入的Excel到磁盘
            /// </summary>
            public void SaveImportxlsm(string Address)
            {
                if (fullName.EndsWith(".xlsx", System.StringComparison.CurrentCultureIgnoreCase))
                {
                    workbook.Save(Address, new XlsSaveOptions(SaveFormat.Excel97To2003));
                }
                else
                {
                    workbook.Save(Address, new XlsSaveOptions(SaveFormat.Xlsx));
                }
            }
            #endregion
    
            #region 导出函数之设置指定的sheet为当前操作sheet
    
            /// <summary>
            /// 导出函数之设置指定名称的sheet为当前操作sheet
            /// </summary>
            /// <param name="worksheetName">指定的sheet名称</param>
            private void SetCurrentWorksheet(string worksheetName)
            {
                if (worksheets.ContainsKey(worksheetName))
                {
                    currentWorksheet = worksheets[worksheetName];
                }
                else
                {
                    throw new Exception("当前工作表中不存在指定的工作薄\"" + worksheetName + "\"");
                }
            }
    
            /// <summary>
            /// 导出函数之设置指定索引的sheet为当前操作sheet
            /// </summary>
            /// <param name="worksheetIndex">指定的sheet索引</param>
            private void SetCurrentWorksheet(byte worksheetIndex)
            {
                if (worksheetIndex <= worksheets.Count)
                {
                    currentWorksheet = GetWorkSheetByIndex(worksheetIndex);
                }
                else
                {
                    throw new Exception("工作薄索引范围超过了工作表数量");
                }
            }
    
            #endregion
    
            #region 导出函数之根据索引或名称得到sheet
    
            /// <summary>
            /// 导出函数之根据索引得到sheet
            /// </summary>
            /// <param name="index">指定的sheet索引</param>
            /// <returns>返回指定的Worksheet(如果sheet索引超出范围,则返回null)</returns>
            private Worksheet GetWorkSheetByIndex(byte index)
            {
                byte i = 0;
                Worksheet worksheet = null;
                foreach (string name in worksheets.Keys)
                {
                    if (index == i)
                    {
                        worksheet = worksheets[name];
                    }
                    i++;
                }
                return worksheet;
            }
    
            /// <summary>
            /// 导出函数之根据sheet名称得到sheet
            /// </summary>
            /// <param name="sheetName">指定的sheet名称</param>
            /// <returns>返回指定的Worksheet(如果不存在指定的sheet名称,则返回null)</returns>
            private Worksheet GetWorkSheetByName(string sheetName)
            {
                if (worksheets.ContainsKey(sheetName))
                {
                    return worksheets[sheetName];
                }
                else
                {
                    return null;
                }
    
            }
    
            #endregion
    
            #region 导出函数之验证sheet指定位置是否有数据
    
            /// <summary>
            /// 导出函数之判断指定行是否有数据(以连续50列没有数据为标准)
            /// </summary>
            /// <param name="row">行数,以Excel行序号1为起始数值</param>
            /// <returns>指定行是否有数据</returns>
            public bool IsRowHasValue(int row)
            {
                bool hasValue = false;
                for (int i = 0; i < 50; ++i)
                {
                    if (currentWorksheet.Cells[row - 1, i].Value != null && currentWorksheet.Cells[row - 1, i].Value.ToString() != "")
                    {
                        hasValue = true;
                        break;
                    }
                }
                return hasValue;
            }
            /// <summary>
            /// 导出函数之判断指定行与列是否有数据
            /// </summary>
            /// <param name="row">行数,以Excel行序号1为起始数值</param>
            /// <param name="column">列数,以Excel列序号1为起始数值</param>
            /// <returns>指定行是否有数据</returns>
            public bool IsRowHasValue(int row,int column)
            {
                bool hasValue = false;
                for (int i = 0; i < column; ++i)
                {
                    if (currentWorksheet.Cells[row - 1, i].Value != null && currentWorksheet.Cells[row - 1, i].Value.ToString() != "")
                    {
                        hasValue = true;
                        break;
                    }
                }
                return hasValue;
            }
            /// <summary>
            /// 导出函数之判断指定位置是否有数据
            /// </summary>
            /// <param name="position">工作薄指定位置的单元格</param>
            /// <returns>工作薄指定位置的单元格是否有数据</returns>
            public bool IsRowHasValue(string position)
            {
                bool hasValue = false;
                if (GetCellValue(position) != "")
                {
                    hasValue = true;
                }
                return hasValue;
            }
    
            #endregion
    
            #region 导出函数之获取sheet中指定cell位置的数据
    
            /// <summary>
            /// 导出函数之获取指定sheet名称与指定cell位置的数据
            /// </summary>
            /// <param name="worksheetName">指定sheet名称</param>
            /// <param name="cellName">指定cell位置名称</param>
            /// <returns>指定sheet名称与指定cell位置的数据(无则返回空字符)</returns>
            public string GetCellValue(string worksheetName, string cellName)
            {
                return worksheets[worksheetName].Cells[cellName].Value != null ? worksheets[worksheetName].Cells[cellName].Value.ToString() : "";
            }
            /// <summary>
            /// 导出函数之获取指定sheet索引与指定cell位置的数据
            /// </summary>
            /// <param name="worksheetIndex">指定sheet索引</param>
            /// <param name="cellName">指定cell位置名称</param>
            /// <returns>指定sheet索引与指定cell位置的数据(无则返回空字符)</returns>
            public string GetCellValue(byte worksheetIndex, string cellName)
            {
                return GetWorkSheetByIndex(worksheetIndex).Cells[cellName].Value != null ? GetWorkSheetByIndex(worksheetIndex).Cells[cellName].Value.ToString() : "";
            }
            /// <summary>
            /// 导出函数之获取当前sheet指定cell位置的数据
            /// </summary>
            /// <param name="cellName">指定cell位置名称</param>
            /// <returns>当前sheet指定cell位置的数据(无则返回空字符)</returns>
            public string GetCellValue(string cellName)
            {
                return currentWorksheet.Cells[cellName].Value != null ? currentWorksheet.Cells[cellName].Value.ToString() : "";
            }
            /// <summary>
            /// 导出函数之根据行列索引,获取当前sheet指定位置的数据
            /// </summary>
            /// <param name="row">行索引值,从0开始</param>
            /// <param name="column">列索引值,从0开始</param>
            /// <returns>获取当前sheet指定位置的数据(无则返回空字符)</returns>
            public string GetCellValue(int row, int column)
            {
                return currentWorksheet.Cells[row, column].Value != null ? currentWorksheet.Cells[row, column].Value.ToString() : "";
            }
    
            #endregion
    
            #region 导出函数之从Excel工作薄导出数据
    
            /// <summary>
            /// 将指定工作表的第一个工作薄,从第一行与第一列索引处开始,将数据导出到DataTable
            /// </summary>
            /// <returns>导出DataTable数据表</returns>
            public DataTable ExportDataTable()
            {
                return ExportDataTable(0);
            }
            /// <summary>
            /// 将指定工作薄,从第一行与第一列索引处开始,将数据导出到DataTable
            /// </summary>
            /// <param name="worksheetIndex">指定工作薄索引值</param>
            /// <returns>导出DataTable数据表</returns>
            public DataTable ExportDataTable(byte worksheetIndex)
            {
                if (worksheetIndex != 0)
                {
                    SetCurrentWorksheet(worksheetIndex);
                }
    
                DataTable dataTable = new DataTable();
                try
                {
                    dataTable = currentWorksheet.Cells.ExportDataTable(0, 0, currentWorksheet.Cells.MaxRow + 1, currentWorksheet.Cells.MaxColumn + 1);
                }
                catch (Exception ex)
                {
                    throw new Exception("从指定的导出数据文件工作薄导出数据时发生错误,错误信息为:" + ex.ToString());
                }
                return dataTable;
            }
            public DataTable ExportDataTable(byte worksheetIndex,int firstRow,int firstColumn)
            {
                if (worksheetIndex != 0)
                {
                    SetCurrentWorksheet(worksheetIndex);
                }
    
                DataTable dataTable = new DataTable();
                try
                {
                    dataTable = currentWorksheet.Cells.ExportDataTable(firstRow, firstColumn, currentWorksheet.Cells.MaxRow + 1, currentWorksheet.Cells.MaxColumn + 1);
    
    
                }
                catch (Exception ex)
                {
                    throw new Exception("从指定的导出数据文件工作薄导出数据时发生错误,错误信息为:" + ex.ToString());
                }
                return dataTable;
            }
    
            /// <summary>
            /// 重构经过ExportDataTable()导出的数据表,将数据列表中被转成数据的字段再转化为字段,并填充数据
            /// </summary>
            /// <param name="dt">经过ExportDataTable()导出的数据表</param>
            /// <returns>将数据列表中被转成数据的字段再转化为字段,并填充数据后的数据表</returns>
            public DataTable TransformDataTable(DataTable dt)
            {
                int sequence = 0;
                string columnName = null;
                string tempColumnName = null;
                ArrayList alst = new ArrayList();
                DataTable dataTable = new DataTable();
    
                #region 将数据列表中被转成数据的字段再转化为字段
    
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    columnName = dt.Rows[0][i].ToString();
    
                    if (!alst.Contains(columnName))
                    {
                        alst.Add(columnName);
                    }
                    else
                    {
                        for (int j = alst.Count; j >= 1; j--)
                        {
                            tempColumnName = alst[j-1].ToString();
    
                            if (tempColumnName.IndexOf(columnName) >= 0)
                            {
                                tempColumnName = tempColumnName.Remove(0, columnName.Length);
                                if (int.TryParse(tempColumnName, out sequence))
                                {
                                    columnName += (sequence + 1).ToString();
                                }
                                else
                                {
                                    columnName += "1";
                                }
                                alst.Add(columnName);
                            }
                        }
                    }
    
                    DataColumn column = new DataColumn();
                    column.DataType = typeof(string);
                    column.AllowDBNull = true;
                    column.Caption = columnName;
                    column.ColumnName = columnName;
                    column.DefaultValue = "";
    
                    dataTable.Columns.Add(column); 
                }
                #endregion
    
                #region 为转化后的新数据表添加数据
                
                DataRow dr = null;
                for (int i = 1; i < dt.Rows.Count; i++)
                {
                    dr = dataTable.NewRow();
    
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        dr[j] = dt.Rows[i][j];
                    }
                    dataTable.Rows.Add(dr);
                }
                #endregion
    
                return dataTable;
            }
            #endregion
    
    
            #region 待扩展与封装区域
    
            /// <summary>
            /// 导出函数之判断某位置的单元格是否为合并单元格
            /// </summary>
            /// <param name="row">从0开始</param>
            /// <param name="column">从0开始</param>
            /// <returns></returns>
            public bool IsMerged(int row, int column)
            {
                return currentWorksheet.Cells[row, column].IsMerged;
            }
    
            /// <summary>
            /// 导入函数之设置样式
            /// </summary>
            /// <param name="isFontBold">是否加粗</param>
            /// <param name="fontSize">字体大小</param>
            /// <returns>返回Style</returns>
            public Style SetStyle(bool isFontBold, int fontSize)
            {
                int styleIndex = workbook.Styles.Add();
                Style style = workbook.Styles[styleIndex];
                style.Font.IsBold = isFontBold; //true
                style.Font.Name = "Verdana";
                //style.ForegroundColor = Color.White;
                style.Pattern = BackgroundType.Solid;
                style.Font.Size = fontSize;     //10
    
                return style;
            }
    
            /// <summary>
            /// 导入函数之创建cell区域
            /// </summary>
            /// <param name="firstRow"></param>
            /// <param name="firstColumn"></param>
            /// <param name="totalRows"></param>
            /// <param name="totalColumns"></param>
            /// <returns></returns>
            public Range CreateRange(int firstRow,int firstColumn,int totalRows,int totalColumns)
            {
                Range range = currentWorksheet.Cells.CreateRange(firstRow, firstColumn, totalRows, totalColumns);
                return range;
    
            }
    
            /// <summary>
            /// 导入函数之设置cell区域样式
            /// </summary>
            /// <param name="range"></param>
            /// <param name="style"></param>
            public void SetRangeStyle(Range range, Style style)
            {
                range.SetStyle(style);
            }
    
            #endregion
        }
    
        
    }
    
    #region 插入错误列
        public string ExcelPath
        {
            get { return this.ViewState["ErrorsExcelPath"] as string; }
            set { this.ViewState["ErrorsExcelPath"] = value; }
        }
        protected bool HasError
        {
            get { return this.ViewState["HasError"] == null ? false : (bool)this.ViewState["HasError"]; }
            set { this.ViewState["HasError"] = value; }
        }
        public class ExcelAddColumn
        {
            public string ArrayList = "23|a";
            public string excelAddress = "C:\\Users\\issuser\\Desktop\\MTK POA.xlsx";
            public string Address = "C:\\Users\\issuser\\Desktop\\MTK POA1.xlsx";
        }
        public void AddErrorFormation(ExcelAddColumn AddExcelerror)
        {
            ArrayList newlist = new System.Collections.ArrayList();
            newlist.Add(AddExcelerror.ArrayList);
            //上传位置
            DataTable table;
            ExcelHelper execlHelper = new ExcelHelper(true, AddExcelerror.excelAddress);
            try
            {
                table = execlHelper.ExportDataTable(0);
                table = execlHelper.TransformDataTable(table);
            }
            catch (Exception ex)
            {
                //this.ShowClientMessageBox(this.GetLocalResourceObject("PleaseUploadRealTemplateStr").ToString());
                return;
            }
            try
            {
                //添加异常列
                execlHelper.AddDataAtMaxColumn("异常",1);
                //将错误添加到异常列的对应行
                for (int i = 0; i < newlist.Count; i++)
                {
                    execlHelper.AddDataAtMaxColumn1(newlist[i].ToString().Split('|')[1], Convert.ToInt32(newlist[i].ToString().Split('|')[0]));
                }
                //保存格式.xlsx
                execlHelper.SaveImportxlsm(AddExcelerror.Address);
                //this.ShowClientMessageBox(this.GetLocalResourceObject("ExcelDataHasErrorsStr").ToString());
            }
            catch (Exception ex)
            {
                //日志
                BRSys_ErrLog.AddLog(ex.Message);
            }
        }
        #endregion
    
    方法的参数用一个类来代替,类里面的数据是测试用的,一般情况从类里面传出数据来供方法使用 
    
    


    展开全文
  • Excel VBA求某列最后一行非空行号

    万次阅读 2016-11-28 00:06:50
    "Cells(Rows.Count, 1)"表示是查找A列最后一个非空单元格,按的可以改成"Cells(1, Columns.count)" "end(3)"表示的向上查找,也可以写成“end(xlup)”,还有其他3个方向,向下,向左,向右:xldown,xltoleft,...
    求出A列最后1行:Cells(Rows.Count, 1).End(3).Row
    "Cells(Rows.Count, 1)"表示是查找A列最后一个非空单元格,按列的可以改成"Cells(1, Columns.count)"
    "end(3)"表示的向上查找,也可以写成“end(xlup)”,还有其他3个方向,向下,向左,向右:xldown,xltoleft,xltoright
    求第一行最后一列
    Cells(1, Columns.Count).End(xlToLeft).Column


    展开全文
  • 例如:只保留一个张三,而且b列的值是123456的这一行,则把这样放在第二个张三前面,谁后就删除谁 操作: 1、选中要操作的相关的整个区域,...备注:也可以只删除第一列重复项,操作只选中第一列即可   ...
  • 小编最近接手一个项目,之于需要...可以显示多列内容,选取后只输入其中一列的内容,效果如下所示: 接下来,小编详细的介绍一下制作步骤,希望可以帮助到有需要的小伙伴们`(*∩_∩*)′。 第一步、生成多列下拉列表。
  • 利用Python+Pandas实现从excel表中提取形成新表

    千次阅读 多人点赞 2020-07-09 15:01:51
    **简要** 利用python实现把一个工作表中的某些列,和其中单独的一列,...整体思路就是先保留前六列,然后加上后面的每一列,每加一列的同事加一个单独的sheets,最后获取第一行每一列的名字,将sheets进行命名。 ...
  • COUNTIF(A3:A302,A3:A302)的意思就是统计A3A3:A302有多少个,统计A4A3:A302有多少个……统计统计A302A3:A302有多少个, 然后把用1除以这些数字, 最后把所有的的分数相加就是有多少个不重复的数字了。 比如...
  • 对此Excel并没有提供直接的设置方法,但对于分类汇总,可以通过设置让其显示到组的顶部或底部,利用这一点,可以数据源中添加个新字段,间接地把“总计”显示到数据透视表的顶部。以Excel 2010为例,步骤如下...
  •  最近遇到这样个问题,将数据写进Excel文档中,插入公式的时候希望得到某列对应的字母,如给第一列对应'A',第52列对应'AZ' 现将代码贴出,后面待用   public String getExcelColumnLetter(int column){ ...
  • Java poi Excel xls号数字转字母

    千次阅读 2016-12-02 16:24:42
    因为是按月导出 个月最多31天,所以刚开始采用的办法是定义个包含1到31字母的数组。后来想想这样总不是个办法 万一数更多 且是不确定的呢。于是研究了下 怎么把xls数字号转成对应的字母。
  • Excel最后一行的代码和公式

    千次阅读 2009-01-08 09:19:00
    Excel最后一行的代码和公式×××××××××××××××××××××××××××××××××××××××求最后一行的代码:Sub ls()a = [b65536].End(xlUp).Row‘application.ExecuteExcel4Macro("get....
  • 我之前写的“Excel中OFFSET函数()——‘实现矩阵转置’“,已经简单介绍了OFFSET函数。阅读本篇文章中如有任何不解之处,请参考上篇文章。 以下是中国2018年8月~2019年7月的各省CPI数据,由于我要利用该SPSS...
  • excle中根据一列数据匹配另一列数据

    千次阅读 2021-01-06 21:21:34
    excle中根据一列数据匹配另一列数据 #公式=INDEX(A:A,MATCH(G28,B:B,)) 1公式输入要填补的位置,如G28左侧单元格 2根据B列内容,找出A列内容的对应数据填充 3G28为要匹配对比内容的单元格
  • Excel 2010 中的 VBA 入门

    万次阅读 2012-03-27 17:11:46
    为什么 Excel 2010 中使用 VBA? Microsoft Excel 2010个功能相当强大的工具,您可以使用它操作、分析和显示数据。不过有时候,尽管标准 Excel 用户界面 (UI) 中提供了丰富的功能集,但您可能仍想要找到...
  • 熟悉VBA 但是不熟悉 xlwings 怎么办,可以调用 api 操作,如 xlwings 取消自动换行,xlwings选中某一列,xlwings获取最大行号,行标,最大列号,列标等等 个人常用代码如下,返回结果,截图如下 import xlwings ...
  • 记得开学初,年级组长我们参加完月考后让我给全年级按照中考标准算次分,没怎么接触过Excel的我听到这个消息后很是头大。拿着老师发给我的《年级分数汇总表》和几句鼓励的话语,时间我竟不知所措。 抱着试...
  • import os import pandas as pd os.chdir(r"D:\pycharm程序文件\练习1") ...missing_value_list = [] # 填放每一列缺失值的个数 missing_rate_list = [] # 填放每一列的缺失率 for i in range(data.shape[...
  • 这个需求简单来说,就是从右向左查找字符出现的首个位置,或从左向右查找字符出现的最后位置,例如:查找“中华人民共和国人民代表大会发言人任免人选”中,最后一个“人”字的位置,直接的查找是做不到的。...
  • Python-Excel获取最大行与

    万次阅读 2018-07-26 17:22:44
    《python编程快速上手》中的第12章:处理Excel电子表格。 get_highest_row()和get_highest_column()最新版的openpyxl模块中已经被删除了,取而代之的是max_row和max_column两个方法。 import openpyxl wb1=...
  • Excel2010 使用技巧小结

    千次阅读 2012-01-16 15:24:45
    · 按ctrl + 向右的方向键,可以跳至当前单元格右面的第个存有数据的单元格,如果右面的单元格全部为空,就跳到本工作表同一行的最后面个单元格,在excel2010号为XFD(这是26进制表示的2^14),当然使用ctrl...
  • 由于工作中经常有2个表格内容需要比对一下,把不同的内容出来,所以做了个对比程序。
  • 按列名选取一列: df[[‘a’]]:类型为dataframe 这里df[‘a’]也可以返回一列,但类型为Series 按列名选取多列: df[[‘a’,‘b’,‘c’]]:必须使用双层括号,返回类型为dataframe 取特定的行 按行名选取行 使用...
  • 这是你第次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,...
  • 利用excel为数据批量增加tr td标签

    千次阅读 2010-05-25 13:12:00
    第一步:准备原始标签数据格式 第一列 第二列 第二步:把这些数据调整成一行,这样方便在excel操作"18%">第一列"20%">第二列第三步:打开已经准备好的excel数据格式第四步:给excel单元格前后添加列(为第五步增加标签做...
  • 新建个空白折线图,右键选择数据源,添加新的图例项。系列名称是定义好的名称,系列值是工作表名加定义好的名称。此时就可以通过勾选复选框来控制折线图。介绍一下offset函数,举个例子,offset(A1,1,...
  • 工作中经常需要将产品明细表转换成标签,贴送货单上,或者将学生成绩转换成标签打印出来发送给学生。 例如下图中有若干产品的送货信息,要求按图2的模板批量打印。 图1 送货信息 图2 标签模板 要实现此类需求,...
  • 每次用到excel导出基本上都要重新写,这次是写了个公共的,以后有想用的时侯直接复制就好,大部份都可以兼容,有问题后期再优化。 准备jar包 poi包:http://poi.apache.org/download.html 核心代码 import ...
  • 1. 根据关键字搜索需要的:公式 =IF(COUNTIF(B2,"*"&"关键字"&"*")=1,1,0) B2是要搜索的单元格,要固定某行或者列在对应标号前加“$”(多复制公式,先复制,在最后一行按shift后选中,粘贴即可) 2. 筛选,...
  • 领跑条码打印软件支持多种数据导入,如TXT、Access、Excel、SQL Server、Oracle、My SQL、S y base、DB2、SQ Lite... 首先打开领跑条码打印软件,新建个文档,条码打印软件的左上面找到“数据库设置”按钮,单击后

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,873
精华内容 9,949
关键字:

在excel2010最后一列的列标