首先要添加引用
WORD 与EXCEL 引用 在 .com 中类型库中查找 microsoft.word .11.0.object.library 与 microsoft.office.11.0.object.library
microsoft.excel.11.0.object.library
然后在命名空间中添加引用
using MSWord = Word;
using MSExcel=Excel;
11.0版本只针对office 2003
/// <summary>
/// 作为缺省值参数传给word或excel对象的某个函数
/// </summary>
private object g_missing = System.Reflection.Missing.Value;
private MSWord.Application word;
string strsql = "select * from ry";
System.Data.DataTable dt = new System.Data.DataTable();
dt = SqlHelper.Query(strsql, CommandType.Text);
SaveFileDialog savFile = new SaveFileDialog();
savFile.Filter = ".doc|*.doc";
if (savFile.ShowDialog()==DialogResult.OK)
{
ThreadPool.QueueUserWorkItem((pp) => {
//创建应用程序对象
word = new MSWord.Application();
//创建模板
object obj = "Normal.dot";
// 创建一个word应用程序对象
Word.Document p_wd = word.Documents.Add(ref obj, ref g_missing, ref g_missing, ref g_missing);
//得到文档范围
Word.Range p_range = p_wd.Range(ref g_missing, ref g_missing);
//设置文档表格格式
object obj1 = Word.WdDefaultTableBehavior.wdWord8TableBehavior;
object obj2 = Word.WdAutoFitBehavior.wdAutoFitWindow;
//文档中添加表格
Word.Table w_table = p_range.Tables.Add(p_range, dt.Rows.Count, 2, ref obj1, ref obj2);
//表格中添加信息
w_table.Cell(1, 1).Range.Text = "人员编号";
w_table.Cell(1, 2).Range.Text = "人员姓名";
for (int i = 0; i < dt.Rows.Count; i++)
{
w_table.Cell(i + 2, 1).Range.Text = dt.Rows[i]["ryid"].ToString();
w_table.Cell(i + 2, 2).Range.Text = dt.Rows[i]["name"].ToString();
}
//设定保存文件的路径
object path = savFile.FileName;
//保存word文档
p_wd.SaveAs(ref path,
ref g_missing, ref g_missing, ref g_missing, ref g_missing,
ref g_missing, ref g_missing, ref g_missing, ref g_missing,
ref g_missing, ref g_missing, ref g_missing, ref g_missing,
ref g_missing, ref g_missing, ref g_missing);
//退出文档
((Word._Application)p_wd.Application).Quit(ref g_missing,ref g_missing,ref g_missing);
//调用窗体线程
this.Invoke(
(MethodInvoker)(() => {
MessageBox.Show("文件保存成功!");
})
);
});
}
}
导出EXCEL
private MSExcel.Application excel;
private object gexcel_missing = System.Reflection.Missing.Value;
string strsql = "select * from ry";
System.Data.DataTable dt = new System.Data.DataTable();
dt = SqlHelper.Query(strsql, CommandType.Text);
SaveFileDialog path = new SaveFileDialog();
path.Filter = ".xls|*.xls";
if (path.ShowDialog()==DialogResult.OK)
{
ThreadPool.QueueUserWorkItem(
(pp) => {
//创建文档对象
excel = new MSExcel.Application();
//创建EXCEL 文档
Excel.Workbook p_wk = excel.Workbooks.Add(gexcel_missing);
//创建一个工作区域
Excel.Worksheet p_ws = (Excel.Worksheet)p_wk.Worksheets.Add(gexcel_missing, gexcel_missing, gexcel_missing, gexcel_missing);
//向EXCEL中写入数据 excel与word的单元格与表格索引都是从1开始
//第一行中增加标头
p_ws.Cells[1, 1] = "人员编号";
p_ws.Cells[1, 2] = "人员姓名";
//从第二行起开始导入数据
for (int i = 0; i < dt.Rows.Count; i++)
{
p_ws.Cells[i + 2, 1] = dt.Rows[i]["ryid"].ToString();
p_ws.Cells[i + 2, 2] = dt.Rows[i]["name"].ToString();
}
//EXCEL中保存数据
p_wk.SaveAs(path.FileName, gexcel_missing, gexcel_missing, gexcel_missing, gexcel_missing, gexcel_missing, Excel.XlSaveAsAccessMode.xlShared, gexcel_missing, gexcel_missing, gexcel_missing, gexcel_missing, gexcel_missing);
//退出应用程序
((Excel._Application)excel).Quit();
//调用窗体线程
this.Invoke((MethodInvoker)(() => {
MessageBox.Show("文件导出完成");
}));
}
);
}