欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#獲取Excel文件所有文本數(shù)據(jù)內(nèi)容的示例代碼

 更新時間:2024年07月30日 09:55:43   作者:初九之潛龍勿用  
獲取上傳的?EXCEL?文件的所有文本信息并存儲到數(shù)據(jù)庫里,可以進一步實現(xiàn)對文件內(nèi)容資料關(guān)鍵字查詢的全文檢索,有助于我們定位相關(guān)文檔,本文詳細介紹了C#獲取Excel文件所有文本數(shù)據(jù)內(nèi)容實現(xiàn)步驟和代碼,需要的朋友可以參考下

功能需求

獲取上傳的 EXCEL 文件的所有文本信息并存儲到數(shù)據(jù)庫里,可以進一步實現(xiàn)對文件內(nèi)容資料關(guān)鍵字查詢的全文檢索。有助于我們定位相關(guān)文檔,基本實現(xiàn)的步驟如下:

1、上傳 EXCEL 文件,獲取二進制數(shù)據(jù)并創(chuàng)建副本文件。

2、將EXCEL 副本文件通過 COM API 導出到指定的文本文件。

3、獲取文本文件的內(nèi)容字符串并存儲到數(shù)據(jù)庫中。

范例運行環(huán)境

操作系統(tǒng): Windows Server 2019 DataCenter

操作系統(tǒng)上安裝 Office Excel 2016

數(shù)據(jù)庫:Microsoft SQL Server 2016

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

開發(fā)工具:VS2019  C#

關(guān)鍵代碼

組件庫引入

獲取Excel文件的文本內(nèi)容

getExcelContent 方法返回 string 類型內(nèi)容,即表示EXCEL 文件的文本內(nèi)容,說明如下表:

序號參數(shù)名類型說明
1_filenamestring文件名為全路徑文件信息,方法會根據(jù)文件路徑創(chuàng)建_path+System.Guid.NewGuid()+".txt"  的臨時目標文件路徑,導入EXCEL文件到 Excel Application ,使用 SAVEAS COM API 導出目標文本文件,再獲文本文件內(nèi)容,刪除目標文本臨時文件,將文件內(nèi)容字符串返回。

實現(xiàn)代碼如下:

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;
			//創(chuàng)建一個名為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 用于關(guān)閉未釋放的EXCEL應(yīng)用進程。 

總結(jié)

以上代碼我們提供了一些操作 EXCEL 的API關(guān)鍵方法,后續(xù)我們可以將文本內(nèi)容存儲到數(shù)據(jù)庫中,查詢或下載,可以參考我的文章:

《C# 將 Word 轉(zhuǎn)文本存儲到數(shù)據(jù)庫并進行管理》

關(guān)于 EXCEL 文件導出方法可參考如下官方文檔:

Worksheet.SaveAs 方法 (Excel) | Microsoft Learn

到此這篇關(guān)于C#獲取Excel文件所有文本數(shù)據(jù)內(nèi)容的示例代碼的文章就介紹到這了,更多相關(guān)C#獲取Excel數(shù)據(jù)內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在winform下實現(xiàn)左右布局多窗口界面的方法

    在winform下實現(xiàn)左右布局多窗口界面的方法

    在web頁面上我們可以通過frameset,iframe嵌套框架很容易實現(xiàn)各種導航+內(nèi)容的布局界面,而在winform、WPF中實現(xiàn)其實也很容易,通過本文給大家介紹在winform下實現(xiàn)左右布局多窗口界面的方法,本文介紹的非常詳細,對winform布局相關(guān)知識感興趣的朋友一起學習吧
    2016-02-02
  • 基于WPF制作一個可編程畫板

    基于WPF制作一個可編程畫板

    這篇文章主要為大家詳細介紹了如何基于WPF制作一個可編程畫板,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2023-05-05
  • C#編程實現(xiàn)統(tǒng)計文件夾內(nèi)文件和隱藏文件的方法示例

    C#編程實現(xiàn)統(tǒng)計文件夾內(nèi)文件和隱藏文件的方法示例

    這篇文章主要介紹了C#編程實現(xiàn)統(tǒng)計文件夾內(nèi)文件和隱藏文件的方法,結(jié)合具體實例形式分析了C#針對文件與目錄的遍歷及屬性操作相關(guān)技巧,需要的朋友可以參考下
    2017-07-07
  • C#遍歷指定目錄下所有文件的方法

    C#遍歷指定目錄下所有文件的方法

    這篇文章主要介紹了C#遍歷指定目錄下所有文件的方法,實例分析了C#中GetFiles()方法遍歷文件的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • WPF實現(xiàn)動畫效果(六)之路徑動畫

    WPF實現(xiàn)動畫效果(六)之路徑動畫

    這篇文章介紹了WPF實現(xiàn)動畫效果之路徑動畫,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#多線程處理多個隊列數(shù)據(jù)的方法

    C#多線程處理多個隊列數(shù)據(jù)的方法

    本文將結(jié)合實例代碼,介紹C#多線程處理多個隊列數(shù)據(jù)的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • C#微信公眾號開發(fā)之消息處理

    C#微信公眾號開發(fā)之消息處理

    這篇文章介紹了C#微信公眾號開發(fā)之消息處理,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#中ManualResetEvent實現(xiàn)線程的暫停與恢復

    C#中ManualResetEvent實現(xiàn)線程的暫停與恢復

    本文主要介紹了C#中ManualResetEvent實現(xiàn)線程的暫停與恢復,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C#刪除最后一個結(jié)尾逗號的方法

    C#刪除最后一個結(jié)尾逗號的方法

    這篇文章主要介紹了C#刪除最后一個結(jié)尾逗號的方法,涉及C#、操作字符串的技巧,簡單實用,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C#?EF?Core可視化工具的使用及EF?Core入門語句操作代碼

    C#?EF?Core可視化工具的使用及EF?Core入門語句操作代碼

    EF?Core?可用作對象關(guān)系映射程序?(O/RM),以便于?.NET?開發(fā)人員能夠使用?.NET?對象來處理數(shù)據(jù)庫,這樣就不必經(jīng)常編寫大部分數(shù)據(jù)訪問代碼了,接下來通過本文給大家介紹C#?EF?Core可視化工具的使用及EF?Core入門語句,感興趣的朋友一起看看吧
    2022-02-02

最新評論