C#创建与Excel打印输出(转载)

C#关于Excel导出及打印 添加DLL文件   Using: using Excel = Microsoft.Office.Interop.Excel;   调用: //Excel模板文件 string strFilePath = Application.StartupPath + "\\tiaomaout.xls";   if (!File.Exists(strFilePath)) throw ne 阅读详情

 

C#创建与Excel打印输出(转载)

 

摘要:本文介绍了Excel对象、C#中的受管代码和非受管代码,并介绍了COM组件在.NET环境中的使用。

0 引言

    Excel是微软公司办公自动化套件中的一个软件,他主要是用来处理电子表格。Excel以其功能强大,界面友好等受到了许多用户 的欢迎。在设计应用系统时,对于不同的用户,他们对于打印的需求是不一样的,如果要使得程序中的打印功能适用于每一个用户,可以想象程序设计是十分复杂 的。由于Excel表格的功能强大,又由于几乎每一台机器都安装了它,如果把程序处理的结果放到Excel表格中,这样每一个用户就可以根据自己的需要在 Excel中定制自己的打印。这样不仅使得程序设计简单,而且又满足了诸多用户的要求,更加实用了。那么用Visual C#如何调用Excel,如何又把数据存放到Excel表格中?本文就来探讨上述问题的解决办法。

1 Excel对象

  微软的Excel对象模型包括了128个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象.下面我们简单介绍一下其中最重要,也是用得最多的四个对象。

(1) Application对象。Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。

(2) Workbook对象。Workbook对象直接地处于Application对象的下层,表示一个Excel工作薄文件。

(3) Worksheet对象。Worksheet对象包含于Workbook对象,表示一个Excel工作表。

(4) Range对象。Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。

2 C#中的受管代码和非受管代码在. NET公用语言框架内运行的程序为受管代码。受管代码在程序中所有类型都受到严格检查,没有指针,对内存的管理完全由运行系统控制。受控状态下,编写程序 更为容易,且更少出错,我们可以花更多的时间在解决实际问题上而不是在计算机语言问题上。相对而言,那些在.NET框架外运行的程序为非受管代码。比如: COM组件、ActiveX组件、Win32 API函数、指针运算等。C#编程中在某些特定情况下,需要运用非受管代码,例如,要利用一个成熟的COM组件,或者调用一个API函数,或者用指针去编 写实时/高效程序等。

3 Visual C#中调用Excel的COM组件

一个.NET组件事实上是一个.NET下的DLL,它包含的不 仅是运行程序本身,更重要的是包含这个DLL的描述信息(Meta Data,即元数据),而一个COM组件是用其类库(TLB)储存其描述信息。这些COM组件都是非受管代码,要在Visual C#中使用这些非受管代码的COM组件,就必须把他们转换成受管代码的.NET组件。所以在用Visual C#调用Excel表格之前,必须完成从COM组件的非受管代码到受管代码的类库的转换。
3.1
将Excel的COM组件转换为.NET组件在 项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到“Microsoft Excel 9.0 Object Library”(Office 2000),然后将其加入到项目的References中即可。Visual C#.NET会自动产生相应的.NET组件文件,以后即可正常使用。

这个转换形成.NET组件不能单独使用,它不过是以前的COM组件的一个外层包装,在.NET中可以通过这个外层包装去发现原来的COM组件并调用其相应的界面函数。所以它必须与原来的COM组件一起起作用。

3.2 Visual C#打开Excel表格

事实上,在C#中使用一个经转换的COM组件和使用任何一个其它.NET组件完全一样。可以用new关键字创建一个经转换的COM组件,然后再像使用任何一个其它C#对象一样使用这个组件对象。

在转换后的.NET组件中定义了一个命名空间Excel,在此命名空间中封装了一个类Application,这个类和启动Excel表格有非常重要的关系,在Visual C#中,只需要下列三行代码就可以完成打开Excel表格的工作,具体如下:

Excel.Application excel = new Excel.Application ();//引用Excel对象
excel.Application.Workbooks.Add ( true )
;//引用Excel工作簿
excel.Visible = true
;//使Excel可视

  但此时的Excel表格是一个空的表格,没有任何内容,下面就来介绍如何往Excel表格中输入数据。

3.3 往Excel表格中输入数据

  在命名空间"Excel"中,还定义了一个类"Cell",这个类所代表的就是Excel表格中的一个单元格。通过给"Cell"赋值,从而实现往Excel表格中输入相应的数据,下列代码功能是打开Excel表格,并且往表格输入一些数据。

Excel.Application excel = new Excel.Application () ;
excel.Application.Workbooks.Add ( true )
;
excel.Cells[ 1 , 1 ] = "First Row First Column"
;
excel.Cells[ 1 , 2 ] = "First Row Second Column"
;
excel.Cells[ 2 , 1 ] = "Second Row First Column"
;
excel.Cells[ 2 , 2 ] = "Second Row Second Column"
;
excel.Visible = true ;

3.4 实例

下面实例在C#中连接Oracle数据库(Name),从表(TableName)中读取数据,并写入Excel.
string cnString="Provider=msdaora.1;Data source=Name; ";
cnString=cnString+"user id=UserName;password=Password";
try
{
OleDbConnection cn=new OleDbConnection (cnString);
cn.Open ();
try
{
string s="select * from Name.TableName";
OleDbCommand cmd=new OleDbCommand (s,cn);
OleDbDataReader dr=cmd.ExecuteReader ();
Excel.Application xlApp = new Excel.Application();
if(xlApp==null){MessageBox.Show ("Can’t open Excel!");return;}
xlApp.Application .Workbooks .Add (true);
int row=2,fieldcount;
fieldcount=dr.FieldCount ;
for(int col=0;col<fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col);
while (dr.Read ())
{
for(int col=0;col<fieldcount;col++)
 
xlApp.Cells [row,col+1]=dr.GetValue(col).ToString();
row++;
}
xlApp.Visible =true;
xlApp=null;
}
catch(Exception ex ){MessageBox.Show (ex.Message );}
finally {cn.Close();}
}
catch(Exception ex){MessageBox.Show (ex.Message );}
}
}

3.5安装一个使用COM组件的.NET程序

如果要将这样的程序安装运行在另一台机器上,那么除了安装运行程序外,还做三件事。

首先,是安装.NET运行系统。因为任何一个.NET程序都不能离开.NET运行系统去独立运行。

其次,所调用的COM组件必须要安装在目标机器上。本例中大多数目标机器上都装有Microsoft Office的Excel,一般不会有这个问题。但如果是另一个用户自定义的COM组件,那么这个COM组件在运行.NET程序之前必须先安装好。

最后,转换后的.NET组件DLL文件要安装在目标机器上。因为.NET组件不需要在Windows Registry中注册,所以最简单的方法是将.NET组件DLL文件拷贝到运行程序目录下。如果此.NET组件被多个.NET程序共享,可以将其安装 在.NET公用组件区中,从而可被任何一个.NET组件使用。只有当一个.NET组件参与了事务处理时,才需要将它注册为一个COM+组件。因为.NET 仍然用传统的COM+机制来处理事务的提交、回滚等。

4 小结

通过以上讨论,我们知道了在C#中,如何使用Excel的COM组件。需要注意的是,Excel对象包含的许多内容我们没有介绍,在使用过程中需要我们不断学习。也使我们了解了在C#中如何使用COM组件。

参考文献:

[1] 刘洪成 C#高级编程 清华大学出版社 2003.7工作 187~200

C#中创建、打开、读取、写入、保存Excel的一般性代码

首先,在引用的COM中找到Microsoft Excel 11.0 Object Library,添加。

using System; 
using System.Reflection; //
引用这个才能使用Missing字段 
using Excel;


namespace CExcel1 
{
 
  class Class1 
  { 
    [STAThread] 
    static void Main(string[] args) 
    { 
      //创建Application对象 
      Excel.Application xApp=new Excel.ApplicationClass();

      xApp.Visible=true; 
      //得到WorkBook对象, 可以用两种方式之一: 下面的是打开已有的文件 
      Excel.Workbook xBook=xApp.Workbooks._Open(@"D:/Sample.xls", 
        Missing.Value,Missing.Value,Missing.Value,Missing.Value 
        ,Missing.Value,Missing.Value,Missing.Value,Missing.Value 
        ,Missing.Value,Missing.Value,Missing.Value,Missing.Value);         

      //xBook=xApp.Workbooks.Add(Missing.Value);//新建文件的代码 
      //指定要操作的Sheet,两种方式:

      Excel.Worksheet xSheet=(Excel.Worksheet)xBook.Sheets[1]; 
      //Excel.Worksheet xSheet=(Excel.Worksheet)xApp.ActiveSheet;

      //读取数据,通过Range对象 
      Excel.Range rng1=xSheet.get_Range("A1",Type.Missing); 
      Console.WriteLine(rng1.Value2);

      //读取,通过Range对象,但使用不同的接口得到Range 
      Excel.Range rng2=(Excel.Range)xSheet.Cells[3,1]; 
      Console.WriteLine(rng2.Value2);

      //写入数据 
      Excel.Range rng3=xSheet.get_Range("C6",Missing.Value); 
      rng3.Value2="Hello"; 
      rng3.Interior.ColorIndex=6; //设置Range的背景色

      //保存方式一:保存WorkBook 
      xBook.SaveAs(@"D:/CData.xls", 
       Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value, 
       Excel.XlSaveAsAccessMode.xlNoChange,Missing.Value,Missing.Value,Missing.Value, 
       Missing.Value,Missing.Value);

      //保存方式二:保存WorkSheet 
      xSheet.SaveAs(@"D:/CData2.xls", 
       Missing.Value,Missing.Value,Missing.Value,Missing.Value, 
       Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);

      //保存方式三 
      xBook.Save(); 
      xSheet=null; 
      xBook=null; 
      xApp.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出 
      xApp=null; 
    } 
  } 
}

C#如何向EXCEL写入数据

我按着微软技术支持网上的方法写入数据:使用“自动化”功能逐单元格传输数据,代码如下:
// Start a new workbook in Excel.
m_objExcel = new Excel.Application();
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt));

// Add data to cells in the first worksheet in the new workbook.
m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));
m_objRange = m_objSheet.get_Range("A1", m_objOpt);
m_objRange.Value = "Last Name";
m_objRange = m_objSheet.get_Range("B1", m_objOpt);
m_objRange.Value = "First Name";
m_objRange = m_objSheet.get_Range("A2", m_objOpt);
m_objRange.Value = "Doe";
m_objRange = m_objSheet.get_Range("B2", m_objOpt);
m_objRange.Value = "John";

// Apply bold to cells A1:B1. 加粗
m_objRange = m_objSheet.get_Range("A1", "B1");
m_objFont = m_objRange.Font;
m_objFont.Bold=true;

// Save the Workbook and quit Excel.保存,退出
m_objBook.SaveAs(m_strSampleFolder + "Book1.xls", m_objOpt, m_objOpt,
 
m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange,
 
m_objOpt, m_objOpt, m_objOpt, m_objOpt);
m_objBook.Close(false, m_objOpt, m_objOpt);
m_objExcel.Quit();


EXCEL表用c#来读

using System;using

System.IO;using

System.Web;

using System.Web.SessionState;

using NickLee.Common.ExcelLite;

namespace excel1

{    /// <summary>  

/// excel 的摘要说明。

    /// </summary>  

public class excel   

{            public excel()     

   {                                

    //            // TODO: 在此处添加构造函数逻辑       

fileName = HttpContext.Current.Server. MapPath(".")+"//temp//"+g+".xls";     

   }            

    private     Guid g = Guid.NewGuid();     

   private string fileName;    

    private   ExcelFile ec =new ExcelFile();        

    /// <summary>    

    /// 从model中复制模版到temp中     

   /// </summary>    

    /// <param name="modelName">只需传入模版的名字即可(注意是字符串)</param>    

    public void copyModel(string modelName)     

   {           

string MName = HttpContext.    

   Current.Server.MapPath(".")+"//model//"+modelName;   

    File.Copy(MName,fileName);   

     }       

/// <summary>      

/// 设置EXCEL表中的字表个数,字表在这个表中统一命名为“续表”+数字序号    

    /// </summary>   

     /// <param name="sheetnum">设置字表的个数</param>      

public void setSheets(int sheetnum)   

     {          

ec.LoadXls(fileName);      

      ExcelWorksheet wsx =ec.Worksheets[0];      

      for (int y=0;y<sheetnum;y++)     

        {              

int num = y+1;       

          ec.Worksheets.AddCopy("续表"+num,wsx);     

       }      }    

    /// <summary>     

   /// 给EXCEL表的各个字段设置值     

   /// </summary>      

/// <param name="sheetnum">表的序号,注意表是以“0”开始的</param>

/// <param name="x">对应于EXCEL的最左边的数字列</param>   

/// <param name="y">对应于EXCEL的最上面的字母列</param>    

/// <param name="values">需要写入的值</param>      

public void setValues(int sheetnum,int x,int y,string values)   

     {            ec.Worksheets[sheetnum].Cells[x,y].Value=values;;        }    

    /// <summary>     

   /// 保存函数,要是文件中有相同的文件就要删除了,      

   ///然后重新写入相同文件名的新EXCEL表      

/// </summary>   

     public void saveFile()     

   {        

    if(File.Exists(fileName))    

        {                                  

             File.Delete(fileName);             

                ec.SaveXls(fileName);   

         }           

        else           

        {             

   ec.SaveXls(fileName);   

         }         

        }      

/// <summary>     

   /// 显示的EXCEL表格       

/// </summary>      

public void showFile()      

{         

   HttpContext.Current.Response.Charset = System.Text.Encoding.Default.WebName;            
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";       
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;             
HttpContext.Current.Response.WriteFile(fileName);    
HttpContext.Current.Response.End();     

   }      

}

}

    小结一些C#读写Excel文件的相关技巧,毕竟Excel打印更为方便和实用,一个是Excel打印输出编码比Word文件打印数据简单些,另一个是Excel本身对数据超强计算处理功能;赶巧最近项目又涉及Excel报表统计打印的问题,所以在把其中的一些技术记录下来与大家一起分析讨论,次篇主要涉及两个方面内容:

1、 读写Excel文件A、设计Excel模版B、打开一个目标文件并且读取模版内容C、目标文件按格式写入需要的数据D、保存并且输出目标Excel文件
2
、 Excel对象资源释放,这个在以前项目没有注意彻底释放使用到Excel对象,对客户计算机资源造成一定浪费,此次得到彻底解决。

   下面是一个Excel打印输出的Demo

1、 创建一个叫DemoExcel的项目

2、 引用COM,包括:Microsoft.Excel.x.0.Object.Library,Microsoft.Office.x.0.Object.Library 建议安装正版OFFICE,而且版本在11.0以上(Office2003以上),引用以上两个Com后,在项目引用栏发现多了Excel、Microsoft.Office.Core,VBIDE三个 Library.
3
、 下面建立一些模拟的数据,此处为街镇信息

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Microsoft.Office.Interop.Excel;using Microsoft.Office.Core;using System.IO;using System.Reflection;namespace DemoExcel{    public partial class Form1 : Form    {        private object missing = Missing.Value;        private Microsoft.Office.Interop.Excel.Application ExcelRS;        private Microsoft.Office.Interop.Excel.Workbook RSbook;        private Microsoft.Office.Interop.Excel.Worksheet RSsheet;        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            // TODO: 这行代码将数据加载到表“dataSet1.STREET”中。您可以根据需要移动或移除它。            this.sTREETTableAdapter.Fill(this.dataSet1.STREET);        }        private void button1_Click(object sender, EventArgs e)        {            string OutFilePath = System.Windows.Forms.Application.StartupPath + @" emp.xls";                       string TemplateFilePath = System.Windows.Forms.Application.StartupPath + @"模版.xls";            PrintInit(TemplateFilePath,OutFilePath);        }        //Excle输出前初始化        /// <summary>        ///         /// </summary>        /// <returns></returns>        public bool PrintInit(string templetFile, string outputFile)        {            try            {                if (templetFile == null)                {                    MessageBox.Show("Excel模板文件路径不能为空!");                    return false;                }                if (outputFile == null)                {                    MessageBox.Show("输出Excel文件路径不能为空!");                    return false;                }                //把模版文件templetFile拷贝到目输出文件outputFile中,并且目标文件可以改写                System.IO.File.Copy(templetFile, outputFile, true);                if (this.ExcelRS != null)                    ExcelRS = null;                //实例化ExcelRS对象                ExcelRS = new Microsoft.Office.Interop.Excel.ApplicationClass();                //打开目标文件outputFile                RSbook = ExcelRS.Workbooks.Open(outputFile, missing, missing, missing, missing, missing,                    missing, missing, missing, missing, missing, missing, missing, missing, missing);                //设置第一个工作溥                RSsheet = (Microsoft.Office.Interop.Excel.Worksheet)RSbook.Sheets.get_Item(1);                //激活当前工作溥                RSsheet.Activate();                                在当前工作溥写入内容                for (int i = 0; i < this.dataGridView1.RowCount; i++)                {                    RSsheet.Cells[3 + i, 1] = this.dataGridView1[0, i].Value.ToString();                    RSsheet.Cells[3 + i, 2] = this.dataGridView1[1, i].Value.ToString();                    RSsheet.Cells[3 + i, 3] = this.dataGridView1[2, i].Value.ToString();                }                                 //保存目标文件                RSbook.Save();                //设置DisplayAlerts                ExcelRS.DisplayAlerts = false;                ExcelRS.Visible = true;                //ExcelRS.DisplayAlerts = true;                //释放对象                RSsheet = null;                RSbook = null;                ExcelRS = null;                //释放内存                GcCollect();            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString());                return false;            }            return true;        }        public void GcCollect()        {            GC.Collect();            GC.WaitForPendingFinalizers();            GC.Collect();            GC.WaitForPendingFinalizers();        }    }}

特别说明:

a、引用Microsoft.Office.Interop.Excel;using Microsoft.Office.Core;

b、(关键)在程序中特别释放Excel资源的时候既要设置对象为null,又要强制回收内存,这样才能彻底回收资源。c、引用的Office组建版本是个敏感问题,不同版本之间有细微差别,需要分别处理。

 

 

C#实现Excel导出及打印 通过引用Microsoft.Office.Interop.Excel库,我们可以创建Excel应用程序对象,并利用其提供的方法和属性来操作Excel文件。通过Printer对象控制打印参数,我们可以对导出的Excel文件进行打印操作。在弹出的对话框中,找到"Microsoft.Office.Interop.Excel"并选中,然后点击"确定"。在使用C#进行开发时,经常会遇到需要将数据导出到Excel并进行打印的需求。在以上代码中,我们首先将表头写入第一行,然后通过循环将每个学生的姓名和年龄写入表格中。 阅读详情

相关推荐

C#实现Excel打印功能的实用教程(二)

本文还有配套的精品资源,点击获取 简介:本文深入探讨了如何在C#中实现Excel文档的打印功能,重点介绍使用EPPlus库作为现代且轻量级的选择。内容涵盖了读取Excel文件、设置打印参数,并指导如何打印到特定打印机。此外,还讨论了将打印功能集成到ASP.NET Web Forms中的实践案例,帮助初学者和有基础的开发者构建出高效的打印解决方案。 1. C#中的Exc...

weixin_42576410的博客 1824

C#开发学习笔记:C#实现打印Excel文档

//准备读取生成的Excel文档 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//lauch excel application excel.Visible = true;//该句代码不设置,wb.PrintPreview()将无法打开Excel文档 // 以只读的形式打开EXCEL文件 Workbook wb = excel.Application..

JustWantToFly的博客 1475

C#实现Excel导出和打印功能(解决office版本不一致问题)

C#实现Excel导出和打印功能(解决office版本不一致问题) 正常开发是引入COM中office组件,故依赖本地office Excel.exe.引入此dll,既不必依赖本地Excel.exe.但必须装office,任意版本即可。另附32位系统Microsoft.Office.Interop.Excel.dll的所有版本,见x32文件夹,这里使用最低版本

C#操作excel打印

C#操作excel打印 using System; using System.Data; using System.IO; using System.Runtime.InteropServices; using System.Threading; using System.Windows.Forms; using Microsoft.Office.Core; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsAppl

cxu123321的博客 2242

C#快速打印excel文件Demo,包含如何选择默认打印机

通过C#,将所要打印的Excel文件转化成图像格式,并利用Graphic对图像进行操作,通过选择默认打印机,对Excel进行打印。适合新手学习使用,大佬勿喷,软件实测可用,请放心下载。PS:需要自行下载spire.xls插件

C#对EXCEL的详细操作和数据导入导出

C#对EXCEL的详细操作,EXCEL数据导入导出,比较全面,比较具体,包含文档说明,希望对你有帮助!

21.2.7 综合示例

当按下“打印”按钮,将输出的xlsx文件使用默认打印机进行打印,由于笔者计算机没有连接真实打印机,使用默认的“Microsoft XPS Document Writer”打印到文件,如果使用真实打印机,请修改PrintOutEx方法的参数,使之符合打印。本例中更适合从数据库中读取数据填入Excel中并打印,读取数据库填充数据,请参看第21.2.2节。当按下“输出”按钮,将输出对应职员信息并保存为职员名字的xlsx文件。,注意由于是一个合并单元格,这里使用了。这里由于只有一页,可以不考虑使用。

学习微软 .net 技术开发 1185

Silvaco Atlas入门指南——从零开始掌握半导体器件仿真

本文为Silvaco Atlas半导体器件仿真软件的入门指南,详细介绍了从零开始掌握该工具的核心流程。内容涵盖Atlas的基本概念、仿真流程、核心文件(输入、结构、输出文件)、交互式与批处理两种操作模式,并逐步演示了如何从定义网格、划分区域、设置电极到进行掺杂、选择物理模型并求解,最终获取和分析器件特性的完整步骤。旨在帮助微电子相关专业人员和工程师快速上手这一强大的“数字实验室”,提升半导体器件设计与研发效率。

weixin_29306317的博客 398

输入班级人数,姓名,分数,创建集合,并按照表格样式打印出来

Console.Write("请输入班级人数:"); int n = int.Parse(Console.ReadLine()); //创建集合 ArrayList banji = new ArrayList(); for (int i = 0; i < n;i++ ) ...

weixin_30496751的博客 241

伯德图逆向工程:用MATLAB从扫频数据中提取系统特性的5个关键步骤

本文详细介绍了使用MATLAB从扫频数据中提取系统特性的5个关键步骤,包括数据预处理、频响特性提取、相位解缠绕、系统特性反演和结果验证。通过伯德图逆向工程技术,工程师可以有效分析黑箱系统的频率响应特性,解决噪声干扰和相位跳变等实际问题,提升控制系统调试效率。

weixin_29081163的博客 194

未隔离电源设备使用usb转串口调试导致串口模块爆炸烧坏事故记录

这个事就发生在前两天,我们公司的wifi模块被客户用到了咖啡机上,客户寄了一台整机给我们协助调试,还送了几包咖啡豆,本想着还能打个咖啡喝一喝的,但就在咖啡机刚寄过来第一天,就出事了。而这个事故的发生,竟然仅仅是因为同事接了个串口模块到电脑调试打印导致的。谁也想不到,这个3.3V的供电的wifi模块居然还有这么大的威力。直接将usb转TTL串口模块的转换芯片给爆开了,咖啡机也给弄坏了,据同事描述当时情况就只见到一片火光和一声巨响,状况比较惨烈,所幸的是笔记本电脑没有烧坏,但是直接给崩蓝屏了。 ...

fangye945a的博客 6188

如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件

如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件 原文:如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件1.描述   PDF文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式。PDF文件以PostScript语言图象模型为基...

weixin_30321709的博客 290

8位可控加减法电路设计

一、设计要求   利用Logisim平台中现有运算部件构建一个8位可控加减法器,可支持八位加减法,利用已经封装全加器和逻辑门进行连接,要求实现相应的输出,判断是否溢出。 二、方案设计 实验原理: [A]补+[B]补 = [A+B]补(mod2^n+1)   公式1        [A-B]补 = [A]补+[-B]补(mod2^n+1)    公式2 FA为全加器,利用全加器实现加减法,难点在于实验减法,对输入的[Y]补各位取反加一即为[-Y]补,利用公式2,就可以将减法转化为加法再利用全加

qq_51700383的博客 1万+

有若干个箱子,假设每个箱子的最大承重为 MaxW 。将货物分配装箱

今天在博客园中看到一个博问,就写了下实现代码。 问题: 有若干个箱子,假设每个箱子的最大承重为 MaxW 。有一批物品,它们的重量分别为w1、w2...Wn,假设每个物品的重量都不超过箱子承重。写个算法,用最少的箱子装完所有物品,并列出每个箱子装载的物品重量? 代码: public static void main(String[] args){ //初始化长度为50的数组 ...

weixin_34112900的博客 330

Brainstorm简单分析近红外数据(fNIRS)(一)

Brainstorm分析fNIRS数据

weixin_43604817的博客 1350

23、工业物流中的多智能体路径规划与碰撞处理策略

本文探讨了工业4.0背景下工业物流中的多智能体路径规划(MAPF)与碰撞处理策略。分析了自动导引车(AGV)等移动资源的应用现状,综述了主流路径规划算法如A*、D*Lite、M*等,以及集中式与分布式碰撞检测方法。重点比较了五种碰撞避免策略:路径交叉、优先级、起始时间调整、无交叉路径和速度调整,提出了基于环境条件的策略选择流程,并通过流程图展示了评估、组合、测试与优化的全过程。文章强调应根据订单不确定性、时间约束、优先级和生产组织等因素综合选择或组合策略,以提升物流效率与系统可靠性。

mac99的博客 125

JavaSE『学习笔记』

本教程以 JDK8 为主,新版本与新特性以介绍与使用为辅。

小哞^同^学的技术博客 1235

基于simulink创建一个针对双馈异步风力发电机并网运行的仿真模型

摘要:本文详细介绍了基于Simulink的双馈异步风力发电机(DFIG)并网运行仿真建模方法。系统包含风速输入、风力机、双馈发电机、电力电子变换器、控制器和并网接口等模块,通过8个步骤完整呈现了建模流程,包括风速模拟、机械功率计算、发电机特性建模、变流器控制策略设计等关键环节。仿真可评估系统在不同风速条件下的动态响应、最大功率跟踪能力和发电效率,为风力发电系统的优化设计提供有效验证手段。模型可根据实际需求扩展环境因素和电网交互等细节,提高仿真精度。

amy_mhd的博客 333

C#实现自动打印Excel文档

注:第三方插件Spire不要在VS的NuGet程序包下载,否则会出现大大的红色英文水印,要想解决红色水印,需要用到他们发布的旧版本Spire插件引用包。2.通过集成第三方SDK Spire.Xls来调用本地Excel文档实现打印。1.首先从服务器下载需要打印的Excel文档。这样就可以完美解决出现的红色水印问题。

weixin_39026052的博客 1857

解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]

惊奇的发现,maven没有用环境变量中设置好的JAVA_HOME目录,至此发现错误原因,原来执行java -version默认使用系统环境变量JAVA_HOME,而maven优先使用了windows的用户变量JAVA_HOME(这里之前忘记修改,仍然指向java8路径),修改用户变量JAVA_HOME指向java21或删除该用户变量JAVA_HOME(如无它用)后即可。打开maven包所在的目录,在maven的配置文件 mvn.cmd 文件中,设置java_home的目录。

litlit023的专栏 1798

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C#编辑、打印Excel文件不依赖Office

1.不废话、不用vip、不吸粉,只为单纯的传播技术。 2.开发环境:VS2019. 3.点击项目-->管理NuGet程序包.搜索框输入Spire.XLS,点击Payway.Spire点击安装,点击同意,安装成功. 4.然后你就会在你的解决方案的引用下看见这个: 5.这三段代码必须要: Spire.Xls.Workbook workbook = new Spire.Xls.Workbook(); workbook.LoadFromFile(@"D:\...

qq_26814543的博客 4343

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C# 导出 Excel 和相关打印设置(不断更新中)

Excel.Application myExcel = new Excel.Application(); Excel.Workbook workbookData = myExcel.Application.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet xlSheet = (Worksheet)workbo

万明博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C#案例 | 基于C#语言在Excel中进行二次开发(一):简单系统搭建:打印输出“Hello Excel & C#”

点击“运行”,在打开的Excel文件中,在选项卡下点击“Hello Excel”即可运行弹出窗口“Hello Excel & C#”,并在A1表格中输入内容:“欢迎使用C#对Excel进行二次开发”,即:我们设置想要输出的内容。点击创建“空白工作簿”,在“空白工作簿”中可以看到我们前面创建的“TabToolkits”选项卡,在选项卡下点击“Hello Excel”即可运行弹出窗口“Hello Excel & C#”,即:我们设置想要输出的内容。鼠标点击“group1”,进入“group1”的属性设置。

ikhui7的博客 2482

C#创建与操作Excel打印输出

摘要:本文介绍了Excel对象、C#中的受管代码和非受管代码,并介绍了COM组件在.NET环境中的使用。0 引言    Excel是微软公司办公自动化 套 件中的一个软件,他主要是用来处理电子表格。Excel以其功能强大,界面友好等受到了许多用户 的欢迎。在设计应用系统时,对于不同的用户,他们对于打印的需求是不一样的,如果要使得程序中的打印功能适用于每一个用户,可以想象程序设计是十分复杂 的。由于Excel表格的功能强大,又由于几乎每一台机器都安装了它,如果把程序处理的结果放到Excel表格中

zengxin2008的专栏 2508

C#使用指定打印机打印Word,Excel等Office文件和打印PDF文件的代码

打印,是做开发的人的经久不变的话题。 今天,用实例代码,说明.NET是如何打印WORD、EXCEL等OFFICE文件,以及PDF文件的。 采用指定的打印机打印OFFICE文件 此方法又分为 “显示相应的程序窗口” 和 “不显示相应的程序窗口”两种方式。 (1) 显示WORD、EXCEL等程序窗口 采用操作系统自身的自动识别模式的打印,此方法实际适用于N多种文件,并不限于WORD,EX...

weixin_30559481的博客 1128
上一篇: ImeMode
下一篇: 天气变冷了
budaha
博客等级 码龄17年 38粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值