C# 获取 Excel 文件的所有文本数据内容
创始人
2024-11-19 13:05:50
0

 

目录

功能需求

范例运行环境

 关键代码

组件库引入

获取Excel文件的文本内容

总结


功能需求

获取上传的 EXCEL 文件的所有文本信息并存储到数据库里,可以进一步实现对文件内容资料关键字查询的全文检索。有助于我们定位相关文档,基本实现的步骤如下:

1、上传 EXCEL 文件,获取二进制数据并创建副本文件。

2、将EXCEL 副本文件通过 COM API 导出到指定的文本文件。

3、获取文本文件的内容字符串并存储到数据库中。

范例运行环境

操作系统: Windows Server 2019 DataCenter

操作系统上安装 Office Excel 2016

数据库:Microsoft SQL Server 2016

.net版本: .netFramework4.7.1 或以上

开发工具:VS2019  C#

 

关键代码

组件库引入

获取Excel文件的文本内容

getExcelContent 方法返回 string 类型内容,即表示EXCEL 文件的文本内容,说明如下表:

序号参数名类型说明
1_filenamestring文件名为全路径文件信息,方法会根据文件路径创建_path+System.Guid.NewGuid()+".txt"  的临时目标文件路径,导入EXCEL文件到 Excel Application ,使用 SAVEAS COM API 导出目标文本文件,再获文本文件内容,删除目标文本临时文件,将文件内容字符串返回。

实现代码如下:

public string getExcelContent(string _filename) { 			Object Nothing=System.Reflection.Missing.Value;  			string _txtfile="",_path=Path.GetDirectoryName(_filename)+"\\",_ext=""; 			if(!Directory.Exists(_path)) 			{ 				Directory.CreateDirectory(_path); 			}  		 			_txtfile=_path+System.Guid.NewGuid()+".txt";  			object filename=_filename; 			//创建一个名为ExcelApp的组件对象 			DateTime beforetime=DateTime.Now; 			Excel.Application excel=new Excel.Application(); 			 			excel.DisplayAlerts=false; 			excel.AskToUpdateLinks=false;  			excel.Visible=true; 			 			DateTime aftertime=DateTime.Now;  			Excel.Workbook xb=excel.Workbooks.Add(filename); 			Worksheet worksheet = (Worksheet) excel.ActiveSheet; 			sheetCount=excel.Sheets.Count; 			worksheet.Activate(); 			  			worksheet.SaveAs(@_txtfile,XlFileFormat.xlUnicodeText, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);  			FileEx fe=new FileEx(); 			excel.Workbooks.Close(); 			string rv=fe.LoadFromFile(@_txtfile,Encoding.Unicode); 			File.Delete(@_txtfile);    			excel.Quit();  			if(worksheet != null) 			{ 				System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); 				worksheet = null; 			} 			if(xb != null) 			{ 				System.Runtime.InteropServices.Marshal.ReleaseComObject(xb); 				xb = null; 			} 			if(excel != null) 			{ 				System.Runtime.InteropServices.Marshal.ReleaseComObject(excel); 				excel = null; 			} 			GC.Collect(); 			  			KillProcessByStartTime("EXCEL",beforetime,aftertime); 			return rv; } public string KillProcessByStartTime(string processName,DateTime beforetime,DateTime aftertime) { 			Process[] ps = Process.GetProcesses(); 			foreach (Process p in ps)   			{ 				if(p.ProcessName.ToUpper()!=processName) continue;  				if(p.StartTime > beforetime && p.StartTime < aftertime) 				{ 					try 					{ 						p.Kill(); 					} 					catch(Exception e) 					{ 						return e.Message; 					} 				} 			}   			return ""; } 

其中 KillProcessByStartTime 用于关闭未释放的EXCEL应用进程。 

总结

以上代码我们提供了一些操作 EXCEL 的API关键方法,后续我们可以将文本内容存储到数据库中,查询或下载,可以参考我的文章:

《C# 将 Word 转文本存储到数据库并进行管理》

关于 EXCEL 文件导出方法可参考如下官方文档:

https://learn.microsoft.com/zh-cn/office/vba/api/excel.worksheet.saveas?redirectedfrom=MSDN

代码这里仅供大家参考,我们可以根据需求调整输出参数类型,欢迎大家评论指教!

相关内容

热门资讯

分享!炸金花的房卡哪里买/微信... 微信游戏中心:炸金花房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信炸金花房...
微信牛牛房卡招代理/炸金花房卡... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
一分钟了解“微信斗牛牛房卡使用... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
金花大厅房卡如何购买的/微信开... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
链接金花房卡哪里买/微信群牛牛... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
金花房卡一手货源/微信链接炸金... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
金花房卡链接怎么购买/金花斗牛... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
给大家讲解“微信拼三张房卡怎么... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
秒懂教程“微信牛牛群哪里购买房... 人海大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
牛牛在哪里购买房卡/哪里购买斗... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
正版授权“牛牛链接房卡那里有/... 海贝之城是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
在哪里能买金花房卡/微信里面炸... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
微信金花房卡怎样购买/牛牛链接... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
一分钟了解“软件炸金花模式创建... 新漫游牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
微信牛牛链接怎么制作/微信斗牛... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
房卡必备教程“微信斗牛牛小程序... 随意玩俱乐部是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房...
秒懂教程“牛牛房卡的客服联系方... 道游大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
金花链接房卡如何充值/微信炸金... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡...
微信牛牛房卡客服微信/微信开金... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
微信怎么玩金花自建房间步骤/上... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...