私は、人々が履歴書をアップロードし、その履歴書が特定の場所に保存される履歴書アーカイブを開発しています。最も重要なことは、人々が履歴書を作成するために MS-word の任意のバージョンを使用することができ、履歴書のファイル拡張子が doc または docx である可能性があることです。だから私は、すべてのms-wordバージョンの場合に機能し、ms-wordがPCにインストールされていない場合にも機能する、docまたはdocxファイルからテキストデータを抽出するために使用できる無料のライブラリがあるかどうかを知りたい. 私はGoogleを検索し、docファイルからテキストデータを抽出するための記事を見つけましたが、すべてのms-wordバージョンの場合にそれらが機能するかどうかはわかりません. そのため、ms-word のバージョンに関係なく、ms-word からデータを抽出するためにどのライブラリを使用する必要があるかを教えてください。また、この問題に関する良い記事へのリンクも提供してください。
また、ms-word のバージョンに関係なく、C# アプリから doc ファイルのコンテンツを表示するために使用できるビューアーがあるかどうかも教えてください。ありがとう
私は答えを得た
**Need to add this reference Microsoft.Office.Interop.Word**
using System.Runtime.InteropServices.ComTypes;
using System.IO;
public static string GetText(string strfilename)
{
string strRetval = "";
System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
if (File.Exists(strfilename))
{
try
{
using (StreamReader sr = File.OpenText(strfilename))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
strBuilder.AppendLine(s);
}
}
}
catch (Exception ex)
{
SendErrorMail(ex);
}
finally
{
if (System.IO.File.Exists(strfilename))
System.IO.File.Delete(strfilename);
}
}
if (strBuilder.ToString().Trim() != "")
strRetval = strBuilder.ToString();
else
strRetval = "";
return strRetval;
}
public static string SaveAsText(string strfilename)
{
string fileName = "";
object miss = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document doc = null;
try
{
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
fileName = Path.GetDirectoryName(strfilename) + @"\" + Path.GetFileNameWithoutExtension(strfilename) + ".txt";
doc = wordApp.Documents.Open(strfilename, false);
doc.SaveAs(fileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDOSText);
}
catch (Exception ex)
{
SendErrorMail(ex);
}
finally
{
if (doc != null)
{
doc.Close(ref miss, ref miss, ref miss);
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
doc = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
}
return fileName;
}