c# 导入WORD或者EXCEL

首先要添加引用
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("文件导出完成");
                        }));
                    }
                    );
            }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值