zoukankan      html  css  js  c++  java
  • c# WPS DLL及其调用

    1.dll分享(含xsl及docx的dll)

    链接:https://pan.baidu.com/s/1c1ImV14OndmvIb4W-_WL2A 密码:d2rx

    2.方法:

      1.先在类的前面(类外面)添加引用:

      using MSWord = Microsoft.Office.Interop.Word;

      2.初始化

    public static object oMissing;
            private Excel.Application oXL;
            private Excel.Workbook oWB;
            private Excel.Worksheet oSheet;
            private Excel.ChartObject chartObject;
            private MSWord._Application oWord;
            private MSWord._Document oDoc;
            private MSWord.Range rang = null;
    
    #region 初始化Office
            /// <summary>
            /// 初始化Office
            /// </summary>
            private void InitOffice()
            {
                oMissing = System.Reflection.Missing.Value;
                #region 实例化一个Excel.Application对象
                oXL = new Excel.Application();
                oXL.Visible = false; //设置为不可见
    
                //String strFileName = Application.StartupPath + "\compare.xls";   //模板文件地址
                String strFileName = ByteConvertWord(Properties.Resources.compare, "2");
    
                oWB = oXL.Workbooks.Add(strFileName); //以模板为基础生成文档
                oSheet = oWB.ActiveSheet as Excel.Worksheet;
                #endregion
    
                if (Directory.Exists(Application.StartupPath + "\tempImg") == false)//如果不存在就创建file文件夹
                {
                    Directory.CreateDirectory(Application.StartupPath + "\tempImg");
                }
    
                #region 创建一个Word应用程序实例
                oWord = new MSWord.Application();
                oWord.Visible = false; //设置为不可见
    
                //模板文件地址,这里假设在X盘根目录
                //object oTemplate = Application.StartupPath + "\comparisonTCM.docx";
                object oTemplate = ByteConvertWord(Properties.Resources.comparisonTCM, "1");
                //以模板为基础生成文档
                oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);
                #endregion
    
            }
            #endregion
    
            /// <summary>
            /// 二进制数据转换为word文件
            /// </summary>
            /// <param name="data">二进制数据</param>
            /// <param name="fileName">word文件名</param>
            /// <returns>word保存的相对路径</returns>
            public string ByteConvertWord(byte[] data, string fileName)
            {
                string savePath = @"\" + fileName + ".gif";
                string filePath = Application.StartupPath + savePath;
                FileStream fs;
                if (System.IO.File.Exists(filePath))
                {
                    fs = new FileStream(filePath, FileMode.Truncate);
                }
                else
                {
                    fs = new FileStream(filePath, FileMode.CreateNew);
                }
                BinaryWriter br = new BinaryWriter(fs);
                br.Write(data, 0, data.Length);
                br.Close();
                fs.Close();
                return filePath;
            }
    

       3.开始写(可以设置字体,大小)

    //excel表格转为图片并添加至word
    oSheet.Cells[i - 14, 10] = Math.Round(data_list[i][0], 2);
                    oSheet.Cells[i - 14, 12] = data_list[i][4];
    chartObject = (Excel.ChartObject)oSheet.ChartObjects("图表 解剖2");
                string dissection_2_chart_image = @"" + Application.StartupPath + "\tempImg\dissection_2_chart_image.png";
                chartObject.Chart.Export(dissection_2_chart_image, "png");

                oDoc.Bookmarks.get_Item("dissection_front_chart").Select();
                oDoc.Application.Selection.InlineShapes.AddPicture(dissection_chart_image);
                oDoc.Bookmarks.get_Item("dissection_back_chart").Select();
                oDoc.Application.Selection.InlineShapes.AddPicture(dissection_2_chart_image);
    //word中的文本框获取及插入 oDoc.Bookmarks.get_Item("img_A1").Select(); MSWord.InlineShape inlineShape = oDoc.Application.Selection.InlineShapes.AddPicture(@"" + Application.StartupPath + "\tempImg\F_Image_One.png"); oDoc.Bookmarks.get_Item("img_A2").Select(); inlineShape = oDoc.Application.Selection.InlineShapes.AddPicture(@"" + Application.StartupPath + "\tempImg\B_Image_One.png"); oDoc.Bookmarks.get_Item("img_B1").Select(); inlineShape = oDoc.Application.Selection.InlineShapes.AddPicture(@"" + Application.StartupPath + "\tempImg\F_Image_Two.png"); oDoc.Bookmarks.get_Item("img_B2").Select(); inlineShape = oDoc.Application.Selection.InlineShapes.AddPicture(@"" + Application.StartupPath + "\tempImg\B_Image_Two.png"); //文字添加 oDoc.Bookmarks.get_Item("home_name").Range.Text = cim[0].customername;
    //属性设置
    rang.Font.Color = MSWord.WdColor.wdColorRed;

       4.保存

    private void SaveAndClose()
            {
                try
                {
                    //设置禁止弹出保存和覆盖的询问提示框    
                    oXL.DisplayAlerts = false;
    
                    object paramMissing = Type.Missing;
                    string paramExportFilePath = Application.StartupPath + @"	mpAdocument_Ctmp.pdf";
                    //string paramExportFilePath = Application.StartupPath + @"	empImgcomparisonReportTCM.pdf";
                    MSWord.WdExportFormat paramExportFormat = MSWord.WdExportFormat.wdExportFormatPDF;
                    MSWord.WdExportOptimizeFor paramExportOptimizeFor = MSWord.WdExportOptimizeFor.wdExportOptimizeForPrint;
                    MSWord.WdExportRange paramExportRange = MSWord.WdExportRange.wdExportAllDocument;
                    MSWord.WdExportItem paramExportItem = MSWord.WdExportItem.wdExportDocumentContent;
                    MSWord.WdExportCreateBookmarks paramCreateBookmarks =
                    MSWord.WdExportCreateBookmarks.wdExportCreateWordBookmarks;
    
                    oDoc.ExportAsFixedFormat(paramExportFilePath, paramExportFormat, false, paramExportOptimizeFor,
                        paramExportRange, 0, 0, paramExportItem, true, true, paramCreateBookmarks, true, true, false, ref paramMissing);
                }
                catch (Exception exp)
                {
                    MessageBox.Show(exp.ToString());
                }
                finally
                {
                    WReport.Close(oDoc, oWord, oSheet, oWB, oXL);
                }
            }
    
  • 相关阅读:
    思达BI软件Style Intelligence实例教程—股票K线图
    思达报表工具Style Report基础教程—参数化查询
    思达报表工具Style Report基础教程—公式表
    思达报表工具Style Report基础教程—交叉表
    思达报表工具Style Report基础教程—分组表
    思达报表工具Style Report基础教程—创建一个带条件的查询
    思达报表工具Style Report基础教程—查询
    思达报表工具Style Report基础教程—参数表单
    .net 详解异步编程
    使用NPOI导入导出Excel
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/9779095.html
Copyright © 2011-2022 走看看