手把手教你使用热敏电阻NTC,产品级精度±0.1℃以内,简单明了,内附源码详解,方便移植

article/2025/8/25 9:46:02

NTC

Author:家有仙妻谢掌柜
Date:2021/1/19

一、背景

前一段疫情期间,就考虑到用NTC来做测温功能,写在这里记录自己的成长历程,也分享出去供大家参考!

NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。(与此相反的有PTC)

与温度相关的大部分开发均可使用NTC,现在市面上的电子体温计多数用到的就是NTC,额温枪内部热电堆传感器就包含了一个NTC来做采集环境温度的功能,市面上不少智能手环为了降低成本也采用NTC,更不必论温控加热水壶,环境温度检测仪等等。NTC在生活中的应用不胜枚举。那么我们这次就来使用NTC测温度,这里用了黑体恒温水槽来检验精度。实验表明精度可以达到±0.1℃以内。

二、实验原理

本次实验采用了国产的BLE芯片,具体型号这里不公布,看官佬爷只需关心实现原理即可,与实验相关的ADC是10bit精度,无论是使用哪一款MCU都可以参考本例程。

首先必须大胆的明白热敏电阻就是电阻。所以它符合电阻的物理特性。

这里P上接线图:
在这里插入图片描述
通过上图,我们可以知道电阻NTC所分得的电压Vntc即为:Vntc = Vcc * ( Rntc / (Rntc + Rm) ),于是有了Vntc去换算出ADCntc是轻而易举的。只是换算的时候需要关注MCU内部ADC的参考电压是多少?
因为我这里使用的是10bit的ADC,该ADC引脚内部参考电压为3.6V,因此ADCntc = ( Vntc / 3.6 ) * 1024。

①:Vntc = Vcc * ( Rntc / (Rntc + Rm) )
②:ADCntc = ( Vntc / 3.6 ) * 1024
这里需要知道的是:ADCntc是ADC引脚采集到的数值,Vcc和Rm是已知量,只有Rntc是未知量。
故由式①②求得Rntc,然后拿着Rntc去查表,查什么表呢?

三、表的制作

这里附上产品规格,这个RT表是开发NTC过程中一定要使用的,问厂家或者客服索要。不同NTC的数据是存在差异的。
在这里插入图片描述
通过表格可以知道我选用的NTC的规格:R(37℃)= 30Kohm,也就是讲当温度在37℃的时候,该热敏电阻NTC阻值在30K,故而分压电阻也选为30K,以提高精度。
需要仔细阅读表格发现其中的规律,这里的规律就是
1.温度范围为0 - 60℃;
2.温度从0到 60℃,总共有251个数据,按照次序编一个序号从0到250,该序号将会作为数组的下标;
3.温度范围在[32℃,42℃]内,序号每增加1,温度就增加0.05℃;
温度范围在[0℃,32℃]和[42℃,60℃],序号每增加1,温度就增加1℃;

四、代码的实现

1.制作表格
我们要做的把上面的表格数据复制到编译器中,做成一维数组。

/*************************************************
NTC的R值数据表    
表的数值随序号的增加而减小   
*************************************************/
#define  NTCTABNum	251static float NTCTAB[NTCTABNum]={
163.3,155.2,147.5,140.3,133.4,127.0,120.9,115.1,109.6,104.4,99.48,94.83,90.42,86.24,82.28,
78.52,74.96,71.57,68.36,65.31,62.41,59.66,57.04,54.56,52.19,49.94,47.80,45.76,43.82,41.98,
40.22,38.54,36.94,36.86,36.79,36.71,36.63,36.56,36.48,36.40,36.32,36.25,36.17,36.10,36.02,
35.94,35.87,35.79,35.72,35.64,35.57,35.49,35.42,35.35,35.27,35.20,35.12,35.05,34.98,34.90,
34.83,34.76,34.69,34.61,34.54,34.47,34.40,34.32,34.25,34.18,34.11,34.04,33.97,33.90,33.83,
33.76,33.68,33.61,33.54,33.48,33.41,33.34,33.27,33.20,33.13,33.06,32.99,32.92,32.85,32.79,
32.72,32.65,32.58,32.51,32.45,32.38,32.31,32.25,32.18,32.11,32.05,31.98,31.91,31.85,31.78,
31.72,31.65,31.59,31.52,31.46,31.39,31.33,31.26,31.20,31.13,31.07,31.00,30.94,30.88,30.81,
30.75,30.69,30.62,30.56,30.50,30.43,30.37,30.31,30.25,30.19,30.12,30.06,30.00,29.94,29.88,
29.82,29.76,29.69,29.63,29.57,29.51,29.45,29.39,29.33,29.27,29.21,29.15,29.09,29.03,28.97,
28.91,28.86,28.80,28.74,28.68,28.62,28.56,28.50,28.45,28.39,28.33,28.27,28.22,28.16,28.10,
28.04,27.99,27.93,27.87,27.82,27.76,27.70,27.65,27.59,27.54,27.48,27.42,27.37,27.31,27.26,
27.20,27.15,27.09,27.04,26.98,26.93,26.87,26.82,26.77,26.71,26.66,26.60,26.55,26.50,26.44,
26.39,26.34,26.28,26.23,26.18,26.13,26.07,26.02,25.97,25.92,25.86,25.81,25.76,25.71,25.66,
25.61,25.55,25.50,25.45,25.40,25.35,25.30,25.25,25.20,25.15,25.10,25.05,25.00,24.95,24.90,
24.85,24.80,24.75,24.70,24.65,24.60,24.55,24.50,23.54,22.63,21.76,20.92,20.12,19.35,18.62,
17.92,17.25,16.61,15.99,15.40,14.84,14.30,13.78,13.28,12.80,12.34};
/*
接下来的处理就是围绕着计算出来的Rntc去查表格。
*/

2.写查表函数

/*================================================================================
*Function	Name 	:LookupTable
*Description  		:查表函数
*parameter			:1.*p 		:表头,即表的首地址
*					 2.tableNum :表格的元素的个数
*					 3.data 	:该变量在这里传入的是当前温度下NTC的阻值
*Return				:当前NTC阻值对应在表中的位置
================================================================================*/
//这里提供两种较易理解的查表方法
#if  1 
//第一种方法
uint8_t LookupTable(float *p , uint8_t tableNum , float data)
{uint16_t 	begin  = 0;   uint16_t 	end    = 0; uint16_t 	middle = 0;  uint8_t 	i      = 0; end = tableNum-1; if(data >= p[begin])        	return begin;else if(data <= p[end])     	return end; while(begin < end)  {middle = (begin+end)/2; if(data == p[middle]) 							break; if(data <  p[middle] && data > p[middle+1]) 	break;   if(data >  p[middle])  	end   = middle ;                      else                  	begin = middle ;      if(i++ > tableNum) 								break; }if(begin > end)   				return 0;   return middle;
}#else 
//第二种方法
uint8_t LookupTable(float *p,uint8_t tableNum,float data)
{uint8_t	i,index	= 0;for(i=0;i<(tableNum-1);i++){if((data<p[i]) && (data>p[i+1]))index = i;	}return index;
}
#endif

3.获取AD值或R值

/*================================================================================
*Function	Name 	:GetADCAverage/GetRkohmAverage
*Description  		:获取多次采样的平均值
*parameter			:无
*Return				:平均的AD值
================================================================================*/
/* 这里附上伪代码,只走一个思路,每个parameter都有自己的想法
*  Get_Single_ADC_Value(); 是针对不同MCU的ADC单次采集接口函数
*/
float  GetADCAverage(void)
{
/*times是样本采样次数
* adc_average 是均值
*/for(t=0;t<times;t++){temp_val += Get_Single_ADC_Value();}		adc_average = temp_val/times;return adc_average;	
}
float  GetRkohmAverage(void)
{
/*
①:Vntc = Vcc * ( Rntc  / (Rntc + Rm) )
②:ADCntc = ( Vntc / 3.6 ) * 1024
由公式①②得出Rntc的表达式,
其中ADCntc = GetADCAverage();
可以求出Rntc,拿着这个值去查表即可!
*/
}

4.获取温度粗值

/*================================================================================
*Function Name 		:GetRoughTemperature
*Description  		:由序号转化得出温度粗值
*parameter			:serialNum	:表的序号值
*Return				:roughTemp	:温度粗值
================================================================================*/
float GetRoughTemperature(uint8_t serialNum)
{float  roughTemp = 0;if(serialNum <= 32)			roughTemp = serialNum;else if(serialNum >= 232)	roughTemp = serialNum - 190;else						roughTemp = 0.05 * (serialNum - 32) + 32;  /*   eg:132-32=100  100*0.05=5  5+32=37  */return roughTemp;
}
/*该函数是观察RT表的规律得出的*/

5.获取温度精值

/*================================================================================
*Function	Name 	:GetAccuraryTemperature
*Description  		:由温度粗值得到温度精值
*parameter			:readRKohm		:读取到的电阻值
*Return				:accuraryTemp	:温度精值
================================================================================*/
/*== 可以精确计算到±0.1℃ ,例如36.57℃ ==*/
float GetAccuraryTemperature(float readRKohm) 	   //这里的返回值数据是要拿出去显示出来的
{float  	t0   = 0;float  	temp = 0;		float  	accuraryTemp = 0;uint8_t serialNum    = 0;  //查表得到的 AD值 或 R值 所在的位置if((readRKohm <= NTCTAB[0]) && (readRKohm > NTCTAB[NTCTABNum-1])){serialNum = LookupTable(NTCTAB,NTCTABNum,readRKohm);t0 = GetRoughTemperature(serialNum);/*== 温度范围在32℃ -- 42℃ ==*/if((readRKohm <= NTCTAB[32]) && (readRKohm > NTCTAB[232]))temp = 0.05*(readRKohm-NTCTAB[serialNum])/(NTCTAB[serialNum+1]-NTCTAB[serialNum])+t0;/*== 温度范围在0℃ -- 32℃  以及  42℃ -- 60℃ ==*/	else	temp = 1*(readRKohm-NTCTAB[serialNum])/(NTCTAB[serialNum+1]-NTCTAB[serialNum])+t0;}accuraryTemp = temp;return accuraryTemp;
}
/****************************************************************
三个点,在坐标上的顺序依次为(X1,Y1),(X,Y),(X2,Y2)
已知(X1,Y1),(X2,Y2),求(X,Y)
两点式:(X-X1)/(Y-Y1) = (X2-X1)/(Y2-Y1)       
则:X = [(X2-X1)/(Y2-Y1 )]* (Y-Y1) + X1
由于已知(X1,Y1),(X2,Y2)为相邻两温度点  X2-X1 = 0.05
故:X = [0.05/(Y2-Y1 )]* (Y-Y1) + X1
或者X = 0.05 * (Y-Y1) / (Y2-Y1 ) + X1
其中X对应温度值 Y对应R值    这样可以把精度从RT表上的0.05提高到0.01
下图中的(Xi,Yi)就是这里描述的(X,Y);
****************************************************************/

在这里插入图片描述

6.温度数值送显

/*================================================================================
*Function	Name 	:GetDisplayTempValue
*Description  		:送显的温度数值
*parameter			:accuraryTemp :读取到的温度精值
*Return				:temp		  :温度精值*100
================================================================================*/
uint32_t GetDisplayTempValue(float accuraryTemp)
{uint32_t temp = 0;temp = GetAccuraryTemperature(accuraryTemp)*100;return temp;
}
/****************************************************************
作用:我这里是拿着数据显示到OLED屏幕上的,设计上是要显示到小数点后两位的,
eg:36.57℃,   例如:exempli gratia → eg
而采集到的也是小数点后两位,为了方便处理显示函数这里将温度值乘以100,
拿着3657去取整取余分别将每一位显示出来,温度值在上一个函数(第5步)已经实现,这里只是为了送显; 
输入参数:float readRKohm这个参变量将代表  GetADCAverage(); 或者 GetRkohmAverage();
****************************************************************/
创建变量TempValue作为求得的目标温度值
TempValue= GetDisplayTempValue(GetAccuraryTemperature(GetRkohmAverage()));
这里调用的是GetRkohmAverage();故而查表的表格是NTC的RT表格;
或者
TempValue = GetDisplayTempValue(GetAccuraryTemperature(GetADCAverage()));
这里调用的是GetADCAverage();故而查表的表格是NTC的ADC表格;
本文中只设计了RT表没有制作对应的AD表,可以用Excel表格将RT表换算得出对应的AD表,原理是一样的。

到此温度值就已经得到了,精度至少可以保证在±0.3以内,为什么这么讲,
我们要明白影响温度精度的要素有什么?
1.Vcc:取决于LDO,可以用四位半以上万用表测试一下电压等;
2.30K:取决于精密电阻,一般选用1‰,不同的NTC配置不同的大小的电阻;
3.NTC:NTC也是电阻,故NTC的精度和表格的精度是有误差的;一般情况下采购是分等级的;
4.MCU:批量生产的时候,可能会发现芯片是有差的,每一个芯片的ADC采集到的数值是不一样的,原因很多,其中影响较大的是芯片设计的时候内部的参考电压是否是稳定的;
5.计算过程中的误差,比如浮点型转整型,求取平均值的时候的误差;
等等诸多因素
其中影响最大的就是第4条,芯片之间的差异;批量生产的时候需要注意,如果存在这个问题那么设计电路的时候也许就要换个思路了,后面会讲如何改变消除这种影响,抛开第四条因素之外(如果你选用的芯片没有第四条这个问题),其他的只要不是很差劲,精度一般可以做到±0.1以内;

五、消除芯片ADC误差的影响,在上述四的基础上进行代码的扩展实现

要明白一点,这个误差是来自于不同芯片之间内部的参考电压不一致,为了排除掉这个误差,可以用下图的设计,避开掉内部的参考电压对数据结果的影响。
在这里插入图片描述

那么根据新的电路设计,使用双ADC,为了方便阅读,我们在这里先约定:
1.AN1引脚的ADC值命名为MaxADC;
2.AN2引脚的ADC值命名为MinADC;
3.精密电阻依然是30K,命名为Rm;
4.NTC的电阻值命名为Rntc,程序中为:RKohmValue 见后面程序;
求取的Rntc = Rm*MinADC/(MaxADC-MinADC);
这样无论是MaxADC还是MinADC都是以该芯片的参考电压为比例得到的数值;分式就抵消掉了这部分的影响,其实仔细思考会发现抵消掉的还有Vcc的影响,毕竟随着电池使用,电量降低,其实LDO出来的数值也是会有影响的,不仅如此,LDO的精度也受制于选择的型号及品牌,不过没关系这部分在这里也将抵消掉!
为了进一步提高精度,要在多次采样之后均值的处理上做一些改变!
为什么要这么做,上图

在这里插入图片描述

这里只是我在Excel上随机写了100组数据,实际上我们采集到的ADC的数值离散分布也是如此的,那么我们最好能够摒弃掉上下两个绿色框内的数据,限制幅度,其实样本大了以后会发现,中位值是最接近真值的。

那么我们要怎么处理这些离散数据呢?
获取一定样本的数据,放在一维数组中,对该数值的元素进行从小到大排序,取中间一定数量的元素求和取平均值,但是因为冒泡排序是比较耗费资源的,再求和取平均势必影响出值速度,因此这里我取中位值作为有效值去计算NTC的电阻值!
我将其称为限幅滤波,或者是中位值滤波!

7.滤波

/*======================以下是对数据进行滤波处理============================*/
/*说明:代码中使用了malloc和free,用malloc来申请空间自身是有弊端的,它会将空间分成很多个碎片,
但在本实验中没有太大影响,*/
/*================================================================================
*Function	Name 	:GetMaxADCValue
*Description  		:获取供电端ADC的数值
*parameter			:无
*Return				:MaxADCFilterValue 
================================================================================*/
float GetMaxADCValue(void)
{/*== 变量定义 ==*/float	 MaxADCFilterValue = 0;		uint32_t *MaxADCArray;//数组首元素的地址uint32_t i,j,m=0;uint32_t times = 501;//样本大小	/*== 获得样本数据 ==*/	MaxADCArray = (uint32_t *)malloc(times);for(m=0;m<times;m++){		  MaxADCArray[m] = Get_MaxADC_Single_ADC_Value();			}			/*== 样本数据从小到大排列 ==*/			for (j=0;j<times-1;j++){for (i=0;i<times-1-j;i++){if (MaxADCArray[i] > MaxADCArray[i+1]){MaxADCArray[i]	 ^= MaxADCArray[i+1];MaxADCArray[i+1] ^= MaxADCArray[i];MaxADCArray[i]	 ^= MaxADCArray[i+1];}}}	/*== 滤除远离目标值的无效值 ==*/	//这里只取了排序之后的中间的值作为有效值,也就是中位值			MaxADCFilterValue = MaxADCArray[250];free(MaxADCArray);return MaxADCFilterValue;			
}
/*================================================================================
*Function	Name 	:GetMinADCValue
*Description  		:获取NTC端ADC的数值
*parameter			:无
*Return				:MinADCFilterValue
================================================================================*/
float GetMinADCValue(void)
{/*== 变量定义 ==*/float    MinADCFilterValue = 0;uint32_t *MinADCArray;//数组首元素的地址uint32_t i,j,m=0;uint32_t times = 801; //样本大小	/*== 获得样本数据 ==*/MinADCArray = (uint32_t *)malloc(times);for(m=0;m<times;m++){MinADCArray[m] = Get_MinADC_Single_ADC_Value();}/*== 样本数据从小到大排列 ==*/for (j=0;j<times-1;j++){for (i=0;i<times-1-j;i++){if (MinADCArray[i] > MinADCArray[i+1]){MinADCArray[i] 	 ^= MinADCArray[i+1];MinADCArray[i+1] ^= MinADCArray[i];MinADCArray[i] 	 ^= MinADCArray[i+1];}}}/*== 滤除远离目标值的无效值 ==*///这里只取了排序之后的中间的值作为有效值,也就是中位值MinADCFilterValue = MinADCArray[400];free(MinADCArray);return MinADCFilterValue;
}

8.获取NTC阻值

/*================================================================================
*Function	Name 	:GetRKohmValve
*Description  		:获取当前温度下NTC阻值
*parameter			:无
*Return				:NTC的阻值
================================================================================*/
float GetRKohmValve(void)
{float RKohmValue = 0;float MaxADC,MinADC = 0;MaxADC = GetMaxADCValue();MinADC = GetMinADCValue();RKohmValue = 30*MinADC/(MaxADC-MinADC);return RKohmValue;
}
创建变量TempValue作为求得的目标温度值
TempValue= GetDisplayTempValue(GetAccuraryTemperature(GetRKohmValve()));
这里调用的是GetRKohmValve();故而查表的表格是NTC的RT表格;
最后,设计上如果对功耗有要求,在第二种设计的基础上可以用一个单独的IO口作为供电端Vcc,
使用的时候拉高,不用的时候拉低,这样可以降低功耗!

到此,NTC的使用的介绍已经结束,如果有看官姥爷觉得写得还不错的,烦请不吝点赞收藏关注!有发现问题的请在评论区指出,有需要进一步了解的可以私信!
预告下一篇博文可能会写额温枪相关的。
感谢您的审阅!


http://chatgpt.dhexx.cn/article/PrMQ6chl.shtml

相关文章

NTC热敏电阻原理及应用详解

NTC热敏电阻是指具有负温度系数的热敏电阻。是使用单一高纯度材料、具有 接近理论密度结构的高性能陶瓷。因此&#xff0c;在实现小型化的同时&#xff0c;还具有电阻值、 温度特性波动小、对各种温度变化响应快的特点&#xff0c;可进行高灵敏度、高精度的 检测。本公司提供各…

NTC热敏电阻温度计算以及C语言实现

一&#xff1a;硬件设计 这里使用的是MF52-103热敏电阻&#xff0c;其中B为3950&#xff0c;它与10K电阻串联&#xff0c;由于热敏电阻随着温度的升高&#xff0c;电阻值降低&#xff0c;所以10K电阻两端的电压将上升。 二&#xff1a;NTC热敏电阻的计算 NTC 热敏电阻温度计算…

热敏电阻、NTC基本概念

首先介绍下热敏电阻的概念&#xff0c;热敏电阻&#xff08;Thermistor&#xff09;是一种传感器电阻&#xff0c;其电阻值随着温度的变化而变化&#xff0c;组成热敏电阻的材料一般是陶瓷或聚合物&#xff0c;在有限的温度范围内能实现较高的精度&#xff0c;通常是-90℃~130℃…

NTC热敏电阻计算温度之C代码

NTC热敏电阻计算温度之C代码 代码已经验证 温度误差可以接受验证 代码已经验证 温度误差可以接受 下面展示部分 代码。 ///< ADC 单次采集 Ntc uint32_t Adc_ReadNtcVal(void) {uint32_t u32AdcRestult;///< ADC 采样通道配置Adc_CfgSglChannel(AdcExInputCH21); /////…

NTC功率型热敏电阻

看网课&#xff0c;学习使我快乐&#xff1b;&#xff08;视频来自B站UP主“郭天祥老师”&#xff0c;感谢Neo老师&#xff1b;也有资料来自网络&#xff0c;感谢愿意分享的每一个人&#xff09; 1、NTC功率型热敏电阻 基本参数 1.1、25℃时的电阻值 因为是热敏电阻&#xff0…

NTC——热敏电阻的采集方法

前言&#xff1a; 最近在调试STM32ADC采集NTC热敏电阻的温度值&#xff0c;总结下NTC热敏电阻温度值的采集方法。 硬件平台&#xff1a;STM32F205 软件平台&#xff1a;keil V5 函数库&#xff1a;标准库 NTC热敏电阻温度采集方法 热敏电阻的相关知识点见百度文库的介绍&a…

热敏电阻(NTC)的作用

热敏电阻的作用 负温度系数热敏电阻在电路上 防浪流的应用阻温特性图应用环境NTC热敏电阻器在电路中抑制浪涌电流示意图负温度系数热敏电阻在电路上 物体表面温度的应用查表法求NTC温度值 负温度系数热敏电阻在电路上 防浪流的应用 从图中可以看到标注10D是在在常温25℃的时候&…

NTC热敏电阻测温

1、NTC特性 所谓NTC热敏电阻器就是负温度系数热敏电阻器&#xff0c;即就是电阻值随着温度上升而迅速下降&#xff0c;因此可以利用这个特性来测量温度。 2、温度计算公式 其中&#xff0c;T1和T2指的是K度&#xff0c;即开尔文温度&#xff0c;开氏度 摄氏度273.15&#xf…

NTC热敏电阻应用-测温

热敏电阻属于敏感元器件的一类。按照温度系数可分为正温度系数热敏电阻&#xff08;PTC&#xff09;和负温度系数热敏电阻(NTC)。在不同的温度下&#xff0c;表现得阻值不同。其中PTC热敏电阻&#xff0c;其随着温度的升高&#xff0c;阻值变大。而NTC热敏电阻&#xff0c;其随…

NTC热敏电阻

NTC被称为负温度系数热敏电阻&#xff0c;是由Mn-Co-Ni的氧化物充分混合后烧结而成的陶瓷材料制备而来&#xff0c;它在实现小型化的同时&#xff0c;还具有电阻值-温度特性波动小、对各种温度变化响应快的特点&#xff0c;可被用来做高灵敏度、高精度的温度传感器&#xff0c;…

JS 在线预览Word,Excel

word文件 XDOC可以实现预览以DataURI表示的DOC文档&#xff0c;此外XDOC还可以实现文本、带参数文本、html文本、json文本、公文等在线预览&#xff0c;具体实现方法请看官方文档 官方DEMO&#xff1a; XDOC 阅读器 下面这种方式可以实现快速预览word但是对文件使用的编辑器可…

【Vue项目实践】实现在线预览word文件、excel文件

JUST DO IT 目录 ??一、查看word 1.引用mammoth.js 2. 页面布局 3. 请求URL显示数据 二、查看Excel ? ? ? ? ?1.引用sheetjs 2.页面布局 3.?请求URL显示数据 三、项目应用&#xff1a;根据详情后缀分情况显示word、excel ? ? ? ? ?1. 效果展示 2. 页面…

html 实现动态在线预览word、excel、pdf等文件(方便快捷)

亲测可用&#xff0c;若有疑问请私信 wordexclepdf表格在线浏览 通过iframe直接引用微软提供的方法 <iframe srchttps://view.officeapps.live.com/op/view.aspx?srchttp://storage.xuetangx.com/public_assets/xuetangx/PDF/1.xls width100% height100% frameborder1>…

php实现在线预览word等office文件,同时添加水印

最近需要在网页上实现预览上传的word文档&#xff0c;并能在预览中添加自己的水印&#xff0c;之前没有实现过相关功能&#xff0c;搜索了一下网上的资料&#xff0c;清晰完整的教程较少&#xff0c;因此将自己实现的步骤和遇到的问题记录下来&#xff0c;希望能帮到有需要的人…

vue 在线预览word、excel、pdf、txt、图片

excel文件预览 word文件预览 pdf文件预览 普通图片预览 一、查看word 引用mammoth.js 安装 npm install --save mammoth 引入import mammoth from “mammoth”; 1.页面 <div id"wordView" v-html"vHtml"/></div> 2.数据 data() {return {vHtml…

前端实现Word在线预览

因为项目需要&#xff0c;要实现在浏览器端在线预览word文档&#xff0c;根据文档url动态预览文件内容。因为浏览器不支持word格式。所以在浏览器端语言word的方法也就有以下几种。 转为pdf&#xff0c;然后预览 因为浏览器支持pdf预览&#xff0c;这种方法也不错&#xff0c…

uniapp h5在线预览word文档ppt等

1.要预览文档服务首先开启服务 &#xff08;1&#xff09;登录 数据万象控制台 &#xff0c;单击存储桶管理&#xff0c;进入存储桶管理页面。 &#xff08;2&#xff09;在存储桶管理页面选择并单击需操作的存储桶&#xff0c;进入相应存储桶管理页面。 &#xff08;3&#xf…

php怎么在线预览word文件?php预览.doc、.docx、.wps文件

php预览Word PHP要实现在线Word预览只需要3步 第一步&#xff1a; 准备一个文件地址&#xff0c;如下&#xff1a; http://usdoc.cn/vw/文件模板.docx 第二步 预览前置地址&#xff1a; http://vw.usdoc.cn/?src 第三步 开始预览 http://vw.usdoc.cn/?srchttp://usdoc.cn/vw/…

Vue在线预览word

先上效果图 下载插件 npm i docx-preview0.1.4 npm i jszip 完整代码 <template><div class"app"><el-button click"preview">预览</el-button><el-dialogv-if"previewShow"title"预览":visible.sync&q…

前端实现在线预览Word文件

简介 在项目中遇到了个需求&#xff0c;大致需求这样的&#xff1a;用户在上传文件前需要先预览一下内容&#xff0c;确认内容是否正确&#xff0c;正确的情况下才可以上传&#xff1b; 那么这里面会涉及到一个在上传前的文档的预览操作&#xff0c;下面就记录一下踩坑记录 d…