-
2020-07-03 17:10:37
Range.Merge 方法:由指定的Range对象创建合并单元格
(一)对选择的区域进行合并
Sub 合并单元格()
Selection.Merge '对选中的单元格区域执行此段代码,进行合并,仅保留左上角值
End Sub
**********************
(二)对相同相邻单元格进行合并
原料如下:
部门 职工 职级 1部门 更多相关内容 -
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2020-12-09 23:03:01定义表头和表内容 data(){ return{ // 表格数据 tableColumns: [], // 表头数据 titleData:[], } } 引入并注册子组件 import TableComponents from "../../components/table/table"; //注册子组件table ... -
Python向Excel单元格中写入数据(修改单元格内容)和数据填充 xlrd库
2021-09-03 17:14:32Python向Excel单元格中写入数据(修改单元格内容)和数据填充 xlrd库 需求说明: 根据excel中已有的数据,填充空白的单元格 问题举例: 在一个excel中,同一个人的编号只保存了一次,多条记录的情况下存在编号空缺...用Python向excel填补数据
需求说明: 根据excel中已有的数据,填充空白的单元格
问题举例: 在一个excel中,同一个人的编号只保存了一次,多条记录的情况下存在编号空缺情况
需求: 需要对同一个人的多条记录的空缺编号进行填补
目标:要达到的填补效果如下图(本需求为向上填充):
1. 引入相关的库
import xlrd from xlutils.copy import copy
2. 定义函数
def paddingData(excel_path, n): ''' 向excel中填充数据 args: excel_path - excel的路径 n - 第 n 次调用本函数的标记 return: ''' print("excel:", excel_path) print("正在打开excel文件...") excel_file = xlrd.open_workbook(excel_path) # 打开Excel文件 table = excel_file.sheets()[0] # 通过索引打开第一个Sheet print('行数:%d' % table.nrows) # 打印行数 print('列数:%d' % table.ncols) # 打印列数 print("转换为可操作对象...") workbook = copy(excel_file) # 将xlrd对象拷贝转化为xlwt可操作的对象 print("获取已存在的Sheet...") worksheet = workbook.get_sheet(0) # 获取一个已存在的sheet print("开始向数组中填补数据...") all_content = [] for i in range(table.nrows - 1, 0, -1): row_content = [] # 获取单元格内容 if (table.cell(i, 0).value != ""): cell_value = table.cell(i, 0).value else: cell_value = table.cell(i + 1, 0).value row_content.append(cell_value) all_content.append(row_content) print("经过第", n, "轮填补后的数组为:") print(type(all_content)) print(all_content) print("开始将数组写入excel表中...") for x in range(table.nrows - 1, 0, -1): worksheet.write(table.nrows - x, 0, all_content[x - 1][0]) print("写入excel已完成!") print("正在保存excel...") workbook.save(excel_path) print("保存成功!")
3. 调用函数,进行测试
# 调用函数,进行测试 excel_path = r"D:\MyFileFolder\Desktop\e.xls" # Excel文件路径 paddingData(excel_path, 1) paddingData(excel_path, 2)
4. 运行效果,最终效果
excel: D:\MyFileFolder\Desktop\e.xls 正在打开excel文件... 行数:8 列数:3 转换为可操作对象... 获取已存在的Sheet... 开始向数组中填补数据... 经过第 1 轮填补后的数组为: <class 'list'> [[332.0, '白居易', 'A33'], [331.0, '白居易', 'A33'], [223.0, '杜甫', 'A22'], [222.0, '杜甫', 'A22'], [221.0, '杜甫', ''], [112.0, '李白', 'A11'], [111.0, '李白', 'A11']] 开始将数组写入excel表中... 写入excel已完成! 正在保存excel... 保存成功! excel: D:\MyFileFolder\Desktop\e.xls 正在打开excel文件... 行数:8 列数:3 转换为可操作对象... 获取已存在的Sheet... 开始向数组中填补数据... 经过第 2 轮填补后的数组为: <class 'list'> [[332.0, '白居易', 'A33'], [331.0, '白居易', 'A33'], [223.0, '杜甫', 'A22'], [222.0, '杜甫', 'A22'], [221.0, '杜甫', 'A22'], [112.0, '李白', 'A11'], [111.0, '李白', 'A11']] 开始将数组写入excel表中... 写入excel已完成! 正在保存excel... 保存成功! Process finished with exit code 0
与需求效果完全符合! -
python之DataFrame实现excel合并单元格
2020-12-23 18:56:44在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元格进行合并,比如如下表表格,需要根据A列的值,合并B、C列的对应单元格 pandas中的to_excel方法只能对索引进行合并,而xlsxwriter中,虽然提供有... -
在antd Table中插入可编辑的单元格实例
2021-01-21 10:57:25补充知识:React+Ant Design实现可编辑单元格、添加行并利用form获取新增数据 实现如下图所示需求: 实现功能说明: 点击添加按钮,在表格中添加新的空白行(如下图所示),在点击提交的时候获取空白行的数据 在... -
css表格单元格中的长文本如何实现自动换行
2020-12-13 10:22:25正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行 html 复制代码代码如下: ”wrap”>正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当... -
POI进行Excel的合并单元格数据处理
2021-01-05 16:51:59POI进行Excel的合并单元格数据处理 近日接到一个要处理合并Excel单元格的上料表的需求,就到网上找了一些模板,发现有的技术大牛还是挺厉害的,对他们致以敬意。 合并单元格工具类 在这个类中将传入的文件转化成流...POI进行Excel的合并单元格数据处理
近日接到一个要处理合并Excel单元格的上料表的需求,就到网上找了一些模板,发现有的技术大牛还是挺厉害的,对他们致以敬意。
合并单元格工具类
在这个类中将传入的文件转化成流对象,再对其进行具体的数据处理
public class ExcelUtilsMerge { public static Map<String, Object> readFileContentToEntity(InputStream inputStream) { Map<String, Object> excelMap = new HashMap<>(16); List<List<ExcelEntity>> result = new ArrayList<>(); Workbook wb = null; try { wb = WorkbookFactory.create(inputStream); } catch (IOException e) { } if (wb == null) { return excelMap; } // 获取excel中存在的sheet个数 int sheetsNum = wb.getNumberOfSheets(); if (sheetsNum <= 0) { return excelMap; } for (int i = 0; i < sheetsNum; i++) { Sheet sheet = wb.getSheetAt(i); // 读取excel数据 if (sheet.getPhysicalNumberOfRows() <= 0) { continue; } int coloumNum = sheet.getRow(0).getPhysicalNumberOfCells(); result.addAll(dealWithExcelSheet(sheet)); // 列总数 excelMap.put("totalColumnNumber", coloumNum); // 数据集 excelMap.put("data", result); } return excelMap; } /** * @Description: 读取sheet中的数据 * @author: drj * @date: 2019/5/22 17:14 */ private static List<List<ExcelEntity>> dealWithExcelSheet(Sheet sheet) { List<List<ExcelEntity>> result = new ArrayList<>(); // 遍历sheet行 for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) { List<ExcelEntity> record = new ArrayList<>(); Row row = sheet.getRow(i); //首先獲取Excel的行 // 遍历行中的没有个单元格 if (row == null || row.getPhysicalNumberOfCells() <= 0) { continue; } //循環列 for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) { Cell cell = row.getCell(j); //獲取沒個單元的值 if (cell == null) { continue; } // 读取单元格数据格式(标记为字符串) cell.setCellType(CellType.STRING); String value = cell.getStringCellValue(); // 处理有值的cell if (StringUtils.isEmpty(value)) { continue; } try { value = value.trim(); ExcelEntity entity = new ExcelEntity(); //初始化封裝好的返回Excel實體類 // 起始行数 entity.setStartRow(i); // 结束行数 entity.setEndRow(getMergeRowNum(cell, sheet) + i - 1); //加上当前行数,因为获取的当前行数加了1,所以要减1 // 起始列数 entity.setStartCol(j); // 结束列数 entity.setEndCol(getMergeColumNum(cell, sheet) + j - 1); //加上当前列数,因为获取的当前列数加了1,所以要减1 // 单元格数据 entity.setValue(value); //将获取的值添加Value里 record.add(entity); } catch (NumberFormatException e) { } } result.add(record); } return result; } /** * @param cell 当前cell * @param sheet 当前sheet * @Description: 获取当前cell合并的行数 * @author: drj * @date: 2019/5/22 18:00 */ public static int getMergeRowNum(Cell cell, Sheet sheet) { int mergeSize = 1; List<CellRangeAddress> mergedRegions = sheet.getMergedRegions(); //獲取的是合併的區域 for (CellRangeAddress cellRangeAddress : mergedRegions) { //對合併區域進行循環 if (cellRangeAddress.isInRange(cell)) { //判斷傳入單元格是否在合併區域中 //获取合并的行数 mergeSize = cellRangeAddress.getLastRow() - cellRangeAddress.getFirstRow() + 1; break; } } return mergeSize; } /** * @param cell 当前cell * @param sheet 当前sheet * @Description: 获取合并的列数 * @author: drj * @date: 2019/5/22 17:59 */ public static int getMergeColumNum(Cell cell, Sheet sheet) { int mergeSize = 1; List<CellRangeAddress> mergedRegions = sheet.getMergedRegions(); for (CellRangeAddress cellRangeAddress : mergedRegions) { if (cellRangeAddress.isInRange(cell)) { //获取合并的列数 mergeSize = cellRangeAddress.getLastColumn() - cellRangeAddress.getFirstColumn() + 1; break; } } return mergeSize; } }
返回的Excel对象实体类
这个类定义了要返回的结果集对象,封装了开始行结束行,开始列结束列,以及单元格的值.
public class ExcelEntity { /** * 开始行 */ private int startRow; /** * 结束行 */ private int endRow; /** * 开始列 */ private int startCol; /** * 结束列 */ private int endCol; /** * 单元格值 */ private String value; public int getStartRow() { return startRow; } public void setStartRow(int startRow) { this.startRow = startRow; } public int getEndRow() { return endRow; } public void setEndRow(int endRow) { this.endRow = endRow; } public int getStartCol() { return startCol; } public void setStartCol(int startCol) { this.startCol = startCol; } public int getEndCol() { return endCol; } public void setEndCol(int endCol) { this.endCol = endCol; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
测试类
返回的结果集的数据类型是List,然后每一行封装为一个类型为ExcelEntity的List.
InputStream inputStream = file.getInputStream(); Map<String, Object> result = ExcelUtilsMerge.readFileContentToEntity(inputStream); List<List<ExcelEntity>> data = (List<List<ExcelEntity>>) result.get("data");
网上的技术点琳琅满目,而在这样杂而乱的网络环境中,亦要吸取其精华,让它变为自己的东西,这才是真正的学习~
-
【一步一步学习VBA】Excel VBA 获取当前单元格的数据类型
2016-08-06 16:28:29从上一篇文章我们已经可以获取某单元格的数据,现在我们只要执行:MsgBox VarType(curCell)就可以获取到类型,完整代码如下: Sub Macro1() ' ' Macro1 Macro ' 宏由 cq 录制,时间: 2016/08/02 x = Sheets("Sheet1...从上一篇文章我们已经可以获取某单元格的数据,现在我们只要执行:MsgBox VarType(curCell)就可以获取到类型,完整代码如下:
Sub Macro1() ' ' Macro1 Macro ' 宏由 cq 录制,时间: 2016/08/02 x = Sheets("Sheet1").[a5] MsgBox VarType(curCell) End Sub
我们会在弹窗看到一个数字,这个就是我们数据类型,下面这张表就是数据类型对应的值:(我们可以从excel帮助获得)
常数 值 描述 vbEmpty 0 未初始化(缺省值) vbNull 1 不含任何有效数据 vbInteger 2 Integer vbLong 3 长整数 vbSingle 4 单精度浮点数 vbDouble 5 双精度浮点数 vbCurrency 6 Currency vbDate 7 Date vbString 8 String vbObject 9 对象 vbError 10 错误 vbBoolean 11 Boolean vbVariant 12 Variant(只用于变体的数组类型) vbDataObject 13 数据访问对象 vbDecimal 14 Decimal vbByte 17 Byte vbLongLong 20 LongLong 整型(只在 64 位平台上有效。) vbUserDefinedType 36 包含用户定义类型的变量 vbArray 8192 数组
-
seamless:Seamless是一个框架,... 单元格包含输入数据以及计算的源代码,并且所有单元格都可以进行交互式编辑
2021-03-05 18:47:20单元格定义了输入数据以及计算的源代码,并且所有单元格都可以进行交互式编辑。 主要应用领域是科学计算,科学Web服务,数据可视化以及算法的交互式开发。 协议,计算和结果都表示为有向无环图,由单元格校验和... -
openpyxl处理.xlsx合并单元格数据
2021-01-29 11:12:41openpyxl处理.xlsx合并单元格数据 一、之前学过xlrd处理.xls格式的excel数据,想着excel使用.xlsx格式比较多,所以用openpyxl做一个处理.xlsx格式的excel数据(仅供参考) 二、思路:(我这里只展示一个表单的情况... -
Python基于xlrd模块处理合并单元格
2020-12-17 11:06:55(2)实际操作时候和我们实际平时打开一个文件进行操作一样,先找到文件–>打开文件–>定义要读取的sheet–>读取出内容。 Excel处理合并单元格: 已存在合并单元格如下: xlrd中的 merged_cells 属性介绍:[code]... -
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2020-11-24 09:35:13表格的列信息由类Ext.grid.Column(以前是由Ext.grid.ColumnModel定义)、而表格的数据存储器由Ext.data.Store定义,数据存储器根据解析的数据不同分为JsonStore、SimpleStroe、GroupingStore等。 下面 -
Layui数据表格之监听单元格
2020-05-02 19:12:12关于Layui数据表格监听单元格使用的小结 Layui数据表格监听单元格使用 优秀的前端框架有很多,当然Layui也是其中之一。相对于其他前端框架如Bootstrap、妹子UI、Vue,个人觉得Layui的样式更加小清新,但使用难度似乎... -
魔法填充:浅谈多单元格合一及stata横向数据填充
2020-09-27 17:05:02通常,从excel将数据导入stata后,需要重新定义stata的变量名称,如果excel表格首行为需要定义的变量名时,使用import导入时结合firstrow选项能够很容易满足需求。如果首行甚至是前几行为中文名称时,将中文名称作为... -
Golang操作Excel的模块Excelize学习总结2-设置单元格数据
2021-11-08 23:41:49startCell, &d) } // 定义需要设置公式的所有单元格范围 f_type, ref := excelize.STCellFormulaTypeShared, "C2:C4" // 相当于设置计算公式的模板 if err := f.SetCellFormula("data", "C2", "=SUM(A2:B2)", ... -
利用Pandas拆分Excel的单元格为多行并保留其他行的数据
2019-07-16 18:35:29利用Pandas拆分Excel的单元格为多行并保留其他行的数据1. 需求2. Pandas解决需求2.1 准备工作2.2 Python程序执行3. Pandas实现需求过程详解 1. 需求 需求:对Excel中的C列(标红)所有单元格的内容进行拆分,同时... -
Java实现导出excel对重复数据进行单元格合并
2021-12-14 13:44:53Java实现导出excel对重复数据进行单元格合并 -
Python读取docx表格中的合并单元格信息
2021-11-23 19:56:00docx库读取word表格中的合并单元格信息 -
易语言对象--Excel之单元格区域读取数据(多行多列)
2018-11-06 11:03:24用易语言在excel表格中读取数据,单个range直接使用ranges.读属性 (“Value”, )就可,多个ranges采用变体变量存储后,用循环方式读出数据。至于要返回文本数组,整数数组,或者文本,全凭个人...子程序 单元格区域... -
一个UITableView和UICollectionView委托和数据源,它提供了一个更简单的统一接口来描述您的节和单元格
2021-05-18 22:12:46FSQCellManifest 一个UITableView和UICollectionView委托和数据源,它提供了一个更简单的统一接口来描述... 允许您使用块而不是委托回调来定义单元格行为。 无需预先注册单元标识符。 清单类均已完全记录在其头文件 -
点击Excel单元格就出现下拉列表框可以选择数据是怎么做的?
2020-12-24 03:35:21如题所示,点击单元格就出现列表,可以选择数据,从而实现输入的目的!看下图!上图为最终实现的效果,下面我们一起来...首先,选择好欲产生这种功能的单元格,之后执行“数据”→“有效性”,弹出数据有效性对话框... -
antd Table 组件动态合并单元格
2020-08-28 16:00:35使用 antd 开发 PC端应用的人肯定知道的 Table 组件。一个功能很完善,界面很优化的表格组件。通过查阅官方文档,你可以很轻松地使用这个组件。但是如果表格中涉及到合并单元格昵? -
单元格属性
2021-06-12 04:17:33值是单元格的真实值,当单元格被引用时,引用的就是单元格的真实值●举例:表达式A1+B1,其运算结果就是A1单元格的值加上B1单元格的值。显示格式单元格属性列表中第二项是显示格式,用来设置值在... -
Excel设置数据有效性实现单元格下拉菜单的3种方法
2021-03-08 07:51:48Excel设置数据有效性实现单元格下拉菜单的3种方法一、直接输入:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→... -
excel2010中如何设置分秒格式显示单元格或数据?
2021-08-01 00:10:52在实际工作过程中,经常要用到分秒显示的数据,那么,在excel2010中如何设置分秒格式显示单元格或数据呢?现在就分享excel2010设置分秒格式的操作步骤和截图,本经验仅供参考,需要的朋友快去看看吧。excel2010中... -
freemarker动态添加数据,合并单元格
2019-04-18 20:55:501、关于freemarker中动态添加多行数据,注意标签 <#list FJLIST as obj> KaTeX parse error: Expected 'EOF', got '#' at position 48: …list中的对象为map; <#̲list FJLIST as …{obj.fileUrl}</w:t... -
Python3获取excel中任意单元格数据(2)
2020-04-26 22:03:08#运行该程序,首先在桌面新建一个名为"数据.xlsx"的excel文件,并且该excle具有有效数据 # 第一步:导入包 from openpyxl import load_workbook, Workbook import os # 第二步:定义函数,返回文件存放的路径 def... -
Qt C从QTableView中获取所选行的每个单元格中的数据
2020-12-24 05:27:57QVariant data(const QModelIndex& index,int role) const用于返回数据....您必须定义此类映射并在data()和setData()函数中使用它来处理与底层模型数据的交互.或者,QAbstractItemModel和QTr... -
QT或VC程序中导出图片到EXCEL指定单元格过程说明
2015-12-06 16:02:11作者项目开发的程序中要实现将程序中数据,包含图片要导出到EXCEL表格中,图片要根据不同数据对应到不同的单元格中,经过5天研究参看大量网络例子及思考,完成了导出图片到指定单元格编码实现。希望看官5分钟搞定... -
element表格动态列数据--根据返回值修改单元格颜色
2020-05-28 11:00:10elelment表格修改单元格颜色 element表格根据返回值修改单元格颜色 修改单元格颜色 el-table修改单元格颜色
收藏数
74,872
精华内容
29,948