基于C#的文档处理
环境是 C# + .NET Framework 4.0 + Visual Studio 2010,要实现对 Excel、Word、PowerPoint 的创建、读取、写入以及转换为 PDF。
这些操作可以完全通过 Microsoft Office Interop 来实现
🔧 一、准备工作
1. 安装与引用 Office Interop 库
你需要在项目中手动添加 COM 引用:
在 Visual Studio 2010 中:
项目 → 添加引用 → COM → 搜索:
分别添加以下引用:
- Microsoft Excel xx.0 Object Library
- Microsoft Word xx.0 Object Library
- Microsoft PowerPoint xx.0 Object Library
- Microsoft Office xx.0 Object Library
⚠️ 其中
xx.0取决于你的 Office 版本(例如 14.0 对应 Office 2010)。
添加后,命名空间如下:
using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;
📘 二、Excel 文档操作
1. 创建与写入 Excel 文件
using Excel = Microsoft.Office.Interop.Excel;public void CreateExcel()
{Excel.Application app = new Excel.Application();Excel.Workbook workbook = app.Workbooks.Add();Excel.Worksheet sheet = (Excel.Worksheet)workbook.ActiveSheet;sheet.Cells[1, 1] = "姓名";sheet.Cells[1, 2] = "成绩";sheet.Cells[2, 1] = "张三";sheet.Cells[2, 2] = "95";workbook.SaveAs(@"C:\test.xlsx");workbook.Close();app.Quit();
}
2. 读取 Excel 文件
public void ReadExcel()
{Excel.Application app = new Excel.Application();Excel.Workbook workbook = app.Workbooks.Open(@"C:\test.xlsx");Excel.Worksheet sheet = (Excel.Worksheet)workbook.Sheets[1];string name = sheet.Cells[2, 1].Value.ToString();double score = sheet.Cells[2, 2].Value;MessageBox.Show($"{name} 的成绩是 {score}");workbook.Close(false);app.Quit();
}
3. Excel 转 PDF
public void ExcelToPdf()
{Excel.Application app = new Excel.Application();Excel.Workbook workbook = app.Workbooks.Open(@"C:\test.xlsx");workbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, @"C:\test.pdf");workbook.Close(false);app.Quit();
}
📗 三、Word 文档操作
1. 创建与写入 Word 文件
using Word = Microsoft.Office.Interop.Word;public void CreateWord()
{Word.Application app = new Word.Application();Word.Document doc = app.Documents.Add();Word.Paragraph para = doc.Content.Paragraphs.Add();para.Range.Text = "这是一个自动生成的Word文档。";para.Range.InsertParagraphAfter();doc.SaveAs(@"C:\test.docx");doc.Close();app.Quit();
}
2. 在 Word 中插入表格
public void InsertTable()
{Word.Application app = new Word.Application();Word.Document doc = app.Documents.Open(@"C:\test.docx");Word.Range range = doc.Content;range.Collapse(Word.WdCollapseDirection.wdCollapseEnd);Word.Table table = doc.Tables.Add(range, 3, 3);table.Borders.Enable = 1;table.Cell(1, 1).Range.Text = "姓名";table.Cell(1, 2).Range.Text = "性别";table.Cell(1, 3).Range.Text = "成绩";table.Cell(2, 1).Range.Text = "张三";table.Cell(2, 2).Range.Text = "男";table.Cell(2, 3).Range.Text = "95";doc.Save();doc.Close();app.Quit();
}
3. 删除 Word 中的表格
public void DeleteTables()
{Word.Application app = new Word.Application();Word.Document doc = app.Documents.Open(@"C:\test.docx");for (int i = doc.Tables.Count; i >= 1; i--){doc.Tables[i].Delete();}doc.Save();doc.Close();app.Quit();
}
4. Word 转 PDF
public void WordToPdf()
{Word.Application app = new Word.Application();Word.Document doc = app.Documents.Open(@"C:\test.docx");doc.ExportAsFixedFormat(@"C:\test.pdf", Word.WdExportFormat.wdExportFormatPDF);doc.Close();app.Quit();
}
📙 四、PowerPoint 文档操作
1. 创建 PowerPoint 幻灯片并写入内容
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;public void CreatePPT()
{PowerPoint.Application app = new PowerPoint.Application();PowerPoint.Presentation pres = app.Presentations.Add(MsoTriState.msoTrue);PowerPoint.Slide slide = pres.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutText);slide.Shapes[1].TextFrame.TextRange.Text = "自动生成的PPT";slide.Shapes[2].TextFrame.TextRange.Text = "这是第二个文本框。";pres.SaveAs(@"C:\test.pptx");pres.Close();app.Quit();
}
2. 读取 PPT 文本内容
public void ReadPPT()
{PowerPoint.Application app = new PowerPoint.Application();PowerPoint.Presentation pres = app.Presentations.Open(@"C:\test.pptx",MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);foreach (PowerPoint.Slide slide in pres.Slides){foreach (PowerPoint.Shape shape in slide.Shapes){if (shape.HasTextFrame == MsoTriState.msoTrue){string text = shape.TextFrame.TextRange.Text;Console.WriteLine(text);}}}pres.Close();app.Quit();
}
3. PowerPoint 转 PDF
public void PptToPdf()
{PowerPoint.Application app = new PowerPoint.Application();PowerPoint.Presentation pres = app.Presentations.Open(@"C:\test.pptx",MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);pres.SaveAs(@"C:\test.pdf", PowerPoint.PpSaveAsFileType.ppSaveAsPDF);pres.Close();app.Quit();
}
