提供网站空间服务器,做网站第三方,汕头老城图片,wordpress侧边栏文章目录C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作
一、使用Microsoft.Office.Interop.Excel库
1、通过NuGet包管理器添加引用
按照下图中红框所示进行操作。 需要安装Microsoft.Office.Interop.Excel包 添加Microsoft Office 16.0 Object …C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作
一、使用Microsoft.Office.Interop.Excel库
1、通过NuGet包管理器添加引用
按照下图中红框所示进行操作。 需要安装Microsoft.Office.Interop.Excel包 添加Microsoft Office 16.0 Object Library进引用列表往Excel里面插入图片需要用到
2、编写一个将DataGridView的数据写入到Excel里面并保存 public void WriteExcelFromDgv(DataGridView dgv){//定义一个工作簿对象Microsoft.Office.Interop.Excel.Application excelApp new Microsoft.Office.Interop.Excel.Application();//定义Excel工作表Microsoft.Office.Interop.Excel.Worksheet worksheet excelApp.Workbooks.Add().Worksheets[1];//获取总行数和总列数int rowCount dgv.Rows.Count;int columnCount dgv.Columns.Count;//填写列标题for (int i 0; i columnCount; i){worksheet.Cells[1, i 1] dgv.Columns[i].HeaderText;}//填写表格数据for (int i 0; i rowCount - 1; i){for (int j 0; j columnCount; j){worksheet.Cells[i 2, j 1] dgv.Rows[i 1].Cells[j].Value;}}//设置列宽和数据一致worksheet.Columns.AutoFit();//保存文件worksheet.SaveAs(C:\Users\new\Desktop\1234.xlsx);//释放对象。不释放对象的话打开excel会弹出有程序占用只能以只读的方式打开。excelApp.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);excelApp null;}private void button1_Click(object sender, EventArgs e){objExcelRW.WriteExcelFromDgv(this.dataGridView1);}3、效果展示 用这个库在编写代码进行单元格格式进行设置时不会智能提示编写起来不够方便。
4、编写一个方法将图片写入到Excel中 public void WriteImageInExcel(string path){//创建一个新的Excel文件----------//定义一个工作簿对象Microsoft.Office.Interop.Excel.Application excelApp new Microsoft.Office.Interop.Excel.Application();//定义Excel工作表Microsoft.Office.Interop.Excel.Worksheet worksheet excelApp.Workbooks.Add().Worksheets[1];//------------------------------/*获取已经存在的Excel文件***************** //获取已创建好的工作簿路径string excelPath C:\Users\new\Desktop\0830.xlsx\;//将现有工作簿加入到已经定义好的工作簿集合excelApp.Workbooks.Add(excelPath);//获取第一个工作表Microsoft.Office.Interop.Excel.Worksheet worksheet excelApp.Worksheets[1];*/ //从指定位置读取图片string imagePath path;//AddPicture()//第1个参数放的是图片路径第2个和第3个是枚举类型固定的值第4个参数是图片左上角距离Excel表格左边的距离//第5个参数是图片左上角距离Excel表格上边的距离第6个参数是图片的宽度第7个参数是图片的高度。worksheet.Shapes.AddPicture(imagePath, Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoTrue, 10, 50, 90, 100);//保存文件worksheet.SaveAs(C:\Users\new\Desktop\0830.xlsx);//释放对象。不释放对象的话打开excel会弹出有程序占用只能以只读的方式打开。excelApp.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);excelApp null;}private void button3_Click(object sender, EventArgs e){OpenFileDialog openFileDialog new OpenFileDialog();DialogResult result openFileDialog.ShowDialog();string path openFileDialog.FileName;objExcelRW.WriteImageInExcel(path);}5、效果展示 二、使用Epplus库
1、通过NuGet包管理器添加引用
按照下图中红框所示进行操作。 需要安装EPPlus包
2、插入图片进已经存在的Excel中 public void WriteDataInExcelByEpplus(string filePath,string imagePath){//需要加这一句不然会报错OfficeOpenXml.ExcelPackage.LicenseContext OfficeOpenXml.LicenseContext.NonCommercial;//通过指定路径创建工作簿对象OfficeOpenXml.ExcelPackage package new OfficeOpenXml.ExcelPackage(filePath);//获取该工作簿的第一个工作表OfficeOpenXml.ExcelWorksheet worksheet package.Workbook.Worksheets[0];//从指定位置读取图片//System.Drawing.Image image System.Drawing.Image.FromFile(imagePath);//定义一个图片对象var pic worksheet.Drawings.AddPicture(logo, imagePath);//图片放置的位置。//第1个参数从第2行下边框开始第2个参数偏移行的像素距离第3个参数从第0列开始右边框第4个参数偏移列的像素距离 pic.SetPosition(2, 10, 0, 10);//图片的大小设置。设置图片的宽度和高度pic.SetSize(90, 100);//保存工作簿package.Save();}private void button4_Click(object sender, EventArgs e){OpenFileDialog openFileDialog new OpenFileDialog();DialogResult result openFileDialog.ShowDialog();string filePath openFileDialog.FileName;OpenFileDialog openFileDialog1 new OpenFileDialog();DialogResult result1 openFileDialog.ShowDialog();string imagePath openFileDialog.FileName;objExcelRW.WriteDataInExcelByEpplus(filePath, imagePath);}如果需要程序创建新的Excel只需将上面相应的代码更改为下面这样即可。 OfficeOpenXml.ExcelPackage excelPackage new OfficeOpenXml.ExcelPackage();OfficeOpenXml.ExcelWorksheet excelWorksheet excelPackage.Workbook.Worksheets.Add(123);excelPackage.SaveAs(C:\Users\new\Desktop\0902.xlsx);3、效果展示