EsayExcel通过模板动态生成多sheet页报错Sheet index () is out of range问题解决方案

手把手教你用Simulink搭建DSOGI-PLL模型(附完整代码下载) 本文详细介绍了在Simulink中搭建高鲁棒性DSOGI-PLL模型的完整工程实践指南。针对传统锁相环在非理想电网下的不足,文章深入剖析了双二阶广义积分器锁相环(DSOGI-PLL)的核心原理与优势,并提供了从模块构建、系统组装到参数整定与测试验证的全流程手把手教程,附有完整代码下载,助力工程师应对谐波、电压跌落等复杂电网工况。 阅读详情
AI摘要

在使用EasyExcel3.3.2版本读取模板生成多sheetExcel时遇到SheetIndex越界异常。为解决此问题,通过POI库动态复制sheet来扩容模板,确保能添加新的sheet页。代码示例展示了如何在查询到业务数据后,根据数据量动态创建sheet,并使用EasyExcel的writeHandler进行样式和内容处理。

问题描述:

通过EasyExcel读取模板生成多sheet页Excel的过程中出现报错

Sheet index (2) is out of range (0..1)

EasyExcel依赖版本:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel</artifactId>
	<version>3.3.2</version>
</dependency>

在git issue上看到其他低版本依然存在该问题。

使用模板填充的方式进行多sheet填错,报错out of range · Issue #2731 · alibaba/easyexcel · GitHub

解决方案:通过POI动态复制sheet

代码如下:

一、EasyExcel读取模板下载的主要逻辑:

/**
 * 模板下载
 *
 * @param listId    查询业务数据id
 */
public void download(String listId) {
	String fileName = "模板.xlsx";
	String downloadPath = EasyExcelUtil.getExcelWritePath(UUID.randomUUID().toString());
	String writePath = downloadPath + fileName;
    //这一步是查询业务数据
	List<CensusListForm> listFormList = censusListFormService.queryByListId(listId);
	if (CollectionUtils.isEmpty(listFormList)) {
		throw new BusinessException("业务数据为空,无法下载");
	}
    //将业务数据封装成自己定义的MultiSheet类
	List<MultiSheet> sheetList = this.handleSheet(listFormList);
	if (CollectionUtils.isNotEmpty(sheetList)) {
		ExcelWriter excelWriter = null;
		try {
			InputStream stream = new ClassPathResource(missionFillTemplate).getInputStream();
			int capacity = sheetList.size() - EasyExcelUtil.DEFAULT_SHEET_NUM;
			if (capacity > 0) {
				//扩容
				stream = EasyExcelUtil.templateSheetResize(stream, capacity);
			}
			excelWriter = EasyExcelFactory.write(writePath)
					.withTemplate(stream)
					.excelType(ExcelTypeEnum.XLSX)
					.registerWriteHandler(new SimpleColumnWidthStyleStrategy(20))
					.build();
			ExcelWriter finalExcelWriter = excelWriter;
            //如果模板中只有一个sheet页,这里循环就会报错
			sheetList.forEach(e -> {
				WriteSheet writeSheet = EasyExcelFactory.writerSheet(e.getOrder())
						//动态sheet页名覆盖
						.registerWriteHandler(new CustomSheetNameHandler(e.getOrder(), e.getSheetName()))
						.head(e.getHead())
						//设置导出文档样式
						.registerWriteHandler(EasyExcelUtil.getStyleStrategy())
						.build();
				finalExcelWriter.write(e.getData(), writeSheet);
			});
		} catch (IOException e) {
			log.error("读取模板流报错:{}", e.toString());
			throw new BusinessException("读取模板流报错:", e);
		} finally {
			if (excelWriter != null) {
				excelWriter.finish();
			}
		}
	}
	EasyExcelUtil.download(writePath, fileName);
}

二、MultiSheet类的元素

/**
 * sheet页名
 */
private String sheetName;
/**
 * sheet页排序 从0开始
 */
private Integer order;
/**
 * excel表头
 */
private List<List<String>> head;
/**
 * 数据集合
 */
private List<List<String>> data;

三、通过POI复制sheet页扩容模板

/**
 * 通过POI方式复制sheet页。
 * EasyExel(截止到3.3.2版本)通过模板动态添加sheet页时存在bug:
 * 例如:模板中只有1个sheet页,那么动态添加第2个sheet页或报错Sheet index (1) is out of range (0..0)
 * 【注】默认所有的模板sheet页有3页。只有超过3个sheet才用该方法
 *
 * @param stream   excel模板流
 * @param capacity 额外扩容的大小
 * @return 扩容后的模板流
 */
public static InputStream templateSheetResize(InputStream stream, Integer capacity) {
	if (capacity <= 0) {
		return stream;
	}
	try {
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		//通过poi复制出需要的sheet个数的模板
		XSSFWorkbook workbook = new XSSFWorkbook(stream);
		//设置模板的第一个sheet的名称
		for (int i = 1; i <= capacity; i++) {
			//复制模板,得到第3+capacity个sheet
			//定义的模板DEFAULT_SHEET_NUM = 3
			int num = DEFAULT_SHEET_NUM + i;
			workbook.cloneSheet(DEFAULT_SHEET_NUM - 1, "Sheet" + num);
		}
		//写到流里
		workbook.write(bos);
		byte[] bArray = bos.toByteArray();
		return new ByteArrayInputStream(bArray);
	} catch (Exception e) {
		log.error("模板扩充sheet页失败:{}", e.getMessage());
		e.printStackTrace();
	}
	return stream;
}

抖音创作者必备工具!免费一键批量下载无水印视频 + 一键提取抖音视频文案 阅读详情

相关推荐

保姆级教程:用NX机电概念设计与RobotStudio实现ModbusTCP联合仿真(附完整代码)

本文提供了一份详细的NX机电概念设计与RobotStudio联合仿真实战教程。通过ModbusTCP协议构建数据桥梁,实现机械行为与机器人控制逻辑的双向实时同步。文章从环境搭建、信号配置、RAPID代码编写到联合调试,逐步拆解了实现数字孪生核心链路的关键步骤,并分享了常见问题排查方法,助力工程师在虚拟环境中提前验证产线协同。

sat99的博客 1100

java.lang.IllegalArgumentException: xxx

非法参数异常

Wind的博客 4906

Nengo神经工程框架:脉冲神经网络的实时编译与硬件部署

脉冲神经网络(SNN)作为类脑计算的核心范式,正从生物模拟走向工程落地。其本质是用离散脉冲建模神经动力学,关键在于实现可预测、可复现的神经行为而非单纯拟合函数。Nengo基于神经工程学框架(NEF),将动态系统理论与硬件约束深度融合,通过解析式权重计算、确定性时间步长(dt)和多后端编译能力,支撑从CPU仿真到Loihi/FPGA的端到端部署。它不替代深度学习框架,而是提供面向神经形态芯片的‘神经编译器’能力,使LIF神经元参数、突触动力学与硬件时序严格对齐,显著提升实时性、能效比与物理可解释性。

weixin_32533659的博客 638

java.lang.IllegalArgumentException: Sheet index (1) is out of range (0..0)

java.lang.IllegalArgumentException: Sheet index (1) is out of range (0..0)

qq 117791303 3504

16QAM调制解调仿真(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释)

16QAM调制解调仿真目录一、仿真要求二、仿真方案详细设计三、仿真结果及结论四、仿真代码 一、仿真要求 1.用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相比较; 2.高阶与低阶的性能比较。 二、仿真方案详细设计 三、仿真结果及结论 仿真结果 16QAM的星座点图 64QAM的星座点图 16QAM加噪声后的星座点图 64QAM加噪声后的星座点图 16-QAM载波调制信号在AWGN信道下的误比特率性能比较 结论:由图可知,16QAM的误符号率

mango 5万+

OpenClaw实战系列06:持久记忆与RAG知识库构建——让AI真正“记住”你

本文介绍了OpenClaw AI助理的持久记忆与RAG知识库构建功能。OpenClaw采用"文件即真理"的独特设计,所有记忆都以Markdown文件形式存储,支持直接编辑和Git版本管理。记忆系统分为三层:长期精炼记忆(MEMORY.md)、日常日志(按日期存储)和归档记忆。文章详细说明了环境配置步骤,包括安装必要组件、创建目录结构、设置API密钥,并提供了OpenClaw主配置文件的完整参数说明。该系统实现了跨会话、跨平台的持久化记忆,使AI助理能真正理解用户需求。

PeterPan的博客 1171

The index 2 is out of range.报错解决方案

异常详情 原因 Mybatis的xml中不能有注释的,删掉即可。

i1103的博客 1387

【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)

在游戏发展史上,有些游戏以其简单而耐玩的特性,深深地烙印在了玩家的记忆中。《黄金矿工》就是其中之一,它曾经在4399等游戏平台上掀起了一股游戏热潮。这款游戏不仅给无数玩家带来了欢乐,还让他们体验到了挖掘金矿的刺激与乐趣。在这个项目中,我们将花费半天的时间,利用Unity引擎,重新打造这款经典小游戏。通过复刻《黄金矿工》,我们不仅是在向童年的回忆致敬,更是在挖掘游戏设计的精髓。在这个过程中,我们将学习如何实现游戏的核心玩法,设计简洁而有效的游戏机制。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2902

POI IllegalArgumentException: Sheet index (0) is out of range (no sheets)问题解决

问题描述: java.lang.IllegalArgumentException: Sheet index (0) is out of range (no sheets) 问题分析: 1、使用POI的workbook.getSheetAt()方法,由于没有创建Sheet,导致获取Sheet失败。 Sheet sheet = workbook.getSheetAt(0); 解决办法: 使用workbook.createSheet()方法即可。 Sheet sheet = workbook.cr

旭东怪的博客 5608

Response Instance 详解:在 ABAP OData Client Proxy 中读懂每一次响应

ABAP OData Client Proxy中的Response Instance是关键信息载体,封装了业务数据及调用上下文(如分页、delta link等)。响应实例在执行请求后自动生成,根据请求类型返回特定接口(如READ返回/IWBEP/IF_CP_RESPONSE_READ)。响应抽象与OData版本解耦,支持统一处理V2/V4服务。常见响应类型包括单实体读取、列表读取(支持分页和增量同步)、创建/更新/删除响应等。开发时可通过响应对象的安全类型方法获取数据,如get_business_data获

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 138

黑猫带你学UFS协议第12篇:UFS标志(Flags)和属性(Atrributes)详解

UFS中的标志其实就是一些开关,布尔型,非0即1,打开或者关闭。这些标志可以用来使能或者禁止UFS设备的一些功能、模式或者状态。 简单来说,flag和attribute、discriptor一样,都是ufs的寄存器罢了。只不过spec将这些寄存器分类了,分成这三种大的类型了而已。 标志可以被清除、复位、设置、触发、读。 主机也是通过设备管理器的Query Request UPIU来读取或者写标志。

黑猫奥利奥的博客 2084

java.lang.IllegalArgumentException: Sheet index (0) is out of range (0..-1)报错

直接贴错误: 后来发现忘记把流的对象给ta了 运行测试成功~~~

43612538的博客 1万+

AUTOSAR OS演示项目搭建与验证

请注意,以上代码只是一个简单的示例,用于说明AUTOSAR OS项目的搭建和验证过程。此外,AUTOSAR OS还提供了其他功能和API,如事件、消息队列和任务间通信等,可以根据实际需求进行使用。AUTOSAR OS是AUTOSAR架构中的一部分,它提供了一种可移植且可扩展的操作系统,用于管理嵌入式应用程序的任务和资源。通过以上步骤,我们成功搭建了一个基于AUTOSAR OS的演示项目,并验证了应用程序任务的执行顺序。3、打开app.c文件,并编写一个简单的应用程序,作为我们的示例任务。

weixin_50547796的博客 195

错误Sheet index (0) is out of range (0..-1)

之前使用Java POI操作Excel 发生错误:错误Sheet index (0) is out of range (0…-1);窗口报错如下: 检测异常代码如下:catch (Exception e) { e.printStackTrace(); monitor.done();关掉进度条,防止卡死; MessageBox.post(AIFDesktop.getActiveDesktop(),...

REVE_Yang的博客 2万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IndexError: list index out of range,错误原因及解决方法(QT、C++)

原因:出现这种情况无外乎以下两方面: 1,下标超出范围, 2,list是空的,没有一个元素 第一种情况: 建议将list容器打印一下,把下标、数据、个数都打印出来,看看是不是你用错下标了,出现访问越界的情况。 第二种情况 看一下你在将数据保存到list的时候,是不是一个空的数据,看一下你的源文件(比如txt,xml,cfg,dat…) ...

lj19990824的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Sheet index (18) is out of range (0..17)

excel多个sheet

qq_36285899的博客 2012

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

easyexcel升级3.3.4失败的经历

格式,尝试解决单元格样式的问题。回头又发现一个问题,就是第一个页签,与页面内容不匹配的问题。什么都没有改,就出了问题,那么问题肯定出现在easyexcel版本自身.解决一部分问题,结果之前的可以用的代码,却无端的出现bug。但结果并没有对方的好,奇怪。显示效果如下,上面的模板还在,但是表头信息没有了。得到的效果是,页签名称与页签中的内容是匹配的。,有人跟我一样的问题,按照他的方式解决即可。第二页签,把上面的模板也导出来了,奇怪了,没有直接的关系,因此升不升级没有影响。更正模板后,又出现新的问题。

warrah 南极狼 2732

poi 导出excel文件 报错 java.lang.ArrayIndexOutOfBoundsException: 0 数组越界

poi 导出excel文件 报错 java.lang.ArrayIndexOutOfBoundsException: 0 数组越界

weixin_41864667的博客 715

Java页码超出_java - 表中的页码 - 堆栈内存溢出

为此,创建一个文本运行,并在这些文本运行中插入字段"PAGE \\\\* MERGEFORMAT"和/或"NUMPAGES \\\\* MERGEFORMAT" 。 这也是Word的GUI所做的。...run = paragraph.createRun();run.setText("Page ");paragraph.getCTP().addNewFldSimple().setInstr("PA...

weixin_39902598的博客 521

【已解决】记一次EasyExcel的报错【读取xls文件时全表读不报错,指定sheet名读取报错】

在使用EasyExcel读取xls格式的excel时指定sheet页读取报上面的错误,xlsx不报错升级到新的easyexcel版本。

胡海龙 2106

使用easyExcel生成多sheet页 excel文件报空指针

我出现这种问题的原因是因为中间的sheet页没有需要替换的参数,但是我是循环的所有sheet页的数量插入数据,所以会报空指针,解决办法是把没有替换参数的sheet页放到最后面,然后不循环最后面的sheet页 ...

rcx_1的博客 2008

Altium Designer中'=SheetNumber'和'=SheetTotal'参数无效的解决方法

出现的问题 图纸没有被自动编号 在Altium中该显示区域被称为Title Block。这里使用了图纸模板。 当使用层次化的设计方式时,往往一个工程中若干幅原理图。这时我们需要为原理图进行编号 想要的效果 原因 在设计中发现,大部分情况下Altium会为原理图自动编号。而有些时候(可能是更换了Altium版本等具体原因未知)软件并不会为我们自己编号。 这就造成,如果我们使用了 ‘=Shee...

qq_20163075的博客 1121

使用easyexcel出现的错误

使用easyexcel出现的错误

小何的博客 4862

EasyExcel使用教程

文章目录一、EasyExcel简介二、EasyExcel使用介绍 一、EasyExcel简介 1.EasyExcel介绍:EasyExcel是阿里巴巴开源的一个excel处理框架。 2.特性:使用简单、节省内存。 (1)数据解析时,不像之前的Apache poi、jxl等Excel解析框架将数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。 (2)相对poi框架,03版本的excel最多只有 65535

tttalk的博客 9570

报错You tried to set a sheet active by the out of bounds index: 1The actual number of sheets is 1

PHPExcel是一款非常强大的PHP操作EXCEL库,使用PHPExcel可以帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。 最近在使用PHPExcel循环生成多个sheet时,遇到You tried to set a sheet active by the out of bounds index: 1. The actual number of sheets ...

q290057637的博客 5072

为excel的sheet创建index目录及页码和链接的vba(无错版,不会出现链接无效)

Sub CreatSheetsIndex() Dim r, c, i, b r = Selection.Row() c = Selection.Column() b = InputBox("请问你要从第几个sheet开始编制INDEX: ") For i = b To Worksheets.Count Cells(r + i - b, c) = Worksheets...

weixin_30561177的博客 340
上一篇: 异步线程池+多线程实现EXCEL填充,打包(zip)及上传
下一篇: SpringBoot整合RabbitMQ,实现MQ动态配置交换机-路由-队列信息
ILoveController
博客等级 码龄10年 2粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值