WINFORM 批次处理WORD文件,转繁简体,查找替换等动作
本来打算用string str = File.ReadAllText(this.txtTag.Text + @"\\" + _finfo.Name, Encoding.Default);,再用方法Microsoft.VisualBasic.Strings.StrConv(File.ReadAllText(_finfo.FullName), Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 1)转的,但发现读出来的str是乱码,试过其他的编码读取,还是这样,只好用其他方法,用word打开,转简体,保存,关闭这样的循环去做了。。
private void btnRun_Click(object sender, EventArgs e)
{
System.IO.DirectoryInfo dirSource = new DirectoryInfo(this.txtSource.Text);
//System.IO.DirectoryInfo dirTag = new DirectoryInfo(this.txtTag.Text);
if (!dirSource.Exists)
{
MessageBox.Show("目标目录不存在!");
return;
}
//if (!dirTag.Exists)
//{
// MessageBox.Show("源目录不存在!");
// return;
//}
foreach (FileInfo _finfo in dirSource.GetFiles())
{
this.btnRun.Enabled = false;
this.btnCancel.Enabled = false;
if (_finfo.Extension.Trim().ToLower().Equals(".htm"))
{
#region "因读取乱码,没取用些方法"
//StreamReader stReader = new StreamReader(_finfo.FullName);
//string str = File.ReadAllText(this.txtTag.Text + @"\\" + _finfo.Name, Encoding.ASCII);
//StreamWriter stWrite = new StreamWriter(this.txtTag.Text + @"\\" + _finfo.Name, false, Encoding.Default);
////stWrite.Write(Microsoft.VisualBasic.Strings.StrConv(File.ReadAllText(_finfo.FullName), Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 1));
//stWrite.Write(File.ReadAllText(_finfo.FullName));
////while (!stReader.EndOfStream)
////{
//// string strLine = stReader.ReadLine();
//// stWrite.WriteLine(Microsoft.VisualBasic.Strings.StrConv(strLine, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 1));
////}
////stReader.Close();
//stWrite.Close();
#endregion
TranWord(_finfo.FullName, this.txtTag.Text + @"\\" + _finfo.Name);
}
}
this.btnRun.Enabled = true;
this.btnRun.Enabled = true;
MessageBox.Show("转变完成");
}
private void TranWord(string _SourcePath, string _TagPath)
{
Microsoft.Office.Interop.Word.Document wordDoc = null;
Object fileSourer = _SourcePath;
Object fileTag = _TagPath;
Object ConfirmConversions = false;
Object ReadOnly = true;
Object AddToRecentFiles = false;
object missing = System.Reflection.Missing.Value;
//打开文件
wordDoc = thisApplication.Documents.Open(ref fileSourer, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
//转简体
thisApplication.Selection.Range.TCSCConverter(Microsoft.Office.Interop.Word.WdTCSCConverterDirection.wdTCSCConverterDirectionTCSC, true, true);
//查找,替换
//thisApplication.Selection.Find.ClearFormatting();
////thisApplication.Selection.Find.Replacement.ClearFormatting();
//object Trueobj = true;
//object falseobj = false;
////thisApplication.Selection.Find.Text = "file:///E:\\share\\Compile_ALL\\";
////thisApplication.Selection.Find.Replacement.Text = "";
////thisApplication.Selection.Find.Forward = true;
////thisApplication.Selection.Find.Format = false;
////thisApplication.Selection.Find.MatchCase = false;
////thisApplication.Selection.Find.MatchWholeWord = false;
////thisApplication.Selection.Find.MatchByte = true;
////thisApplication.Selection.Find.MatchWildcards = false;
////thisApplication.Selection.Find.MatchSoundsLike = false;
////thisApplication.Selection.Find.MatchAllWordForms = false;
//object FindText = "file:///E:\\share\\Compile_ALL\\" as object;
//object ReplaceText = "" as object;
//object ReplaceType = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
////bool rus = thisApplication.Selection.Find.Execute(ref FindText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref ReplaceText, ref ReplaceType, ref missing, ref missing, ref missing, ref missing);
//bool rus = wordDoc.Content.Find.Execute(ref FindText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref ReplaceText, ref ReplaceType, ref missing, ref missing, ref missing, ref missing);
//另存为
//wordDoc.SaveAs(ref fileTag, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
//保存
wordDoc.Save();
Object SaveChanges = false;
Object OriginalFormat = System.Type.Missing;
Object RouteDocument = System.Type.Missing;
//thisApplication.Quit(ref SaveChanges, ref OriginalFormat, ref RouteDocument);
//thisApplication = null;
wordDoc.Close(ref SaveChanges, ref OriginalFormat, ref RouteDocument);
wordDoc = null;
GC.Collect();
}

浙公网安备 33010602011771号