用C#操作Excel,复制指定区域到新文件

五维思考 2018-08-17 11:17:19
用C#操作Excel,复制指定区域新文件并保存,指定区域内含有图片,如图所示:


...全文
626 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
起个名字忒难 2018-08-18
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Excel = Microsoft.Office.Interop.Excel;
using System.IO;

namespace ExcelToPic
{
class RangeToPic
{
/// <summary>
/// 复制指定区域到新工作簿
/// </summary>
/// <param name="filePath">源文件路径</param>
/// <param name="rangeAddress">指定区域Range</param> //比如要复制Range("A1:A12")则字符串为A1:A12
/// <returns>返回操作结果</returns>
public string CopyToNewWork(string filePath,string rangeAddress)
{
if (!File.Exists(filePath)) return "保存失败,源文件不存在!";
string content = Path.GetExtension(filePath); //获取文件的扩展名
if (content.ToLower()!=".xls"&&content.ToLower()!=".xlsx") return "保存失败,源文件不是excel文件";
Excel.Application excelApp = new Excel.Application();
excelApp.SheetsInNewWorkbook = 1; //设定新建工作簿当中默认一个工作表
Excel.Workbook wb = excelApp.Workbooks.Open(filePath); //打开源文件
Excel.Workbook wb1 = excelApp.Workbooks.Add(); //新建一个workbook对象

Excel.Worksheet ws = wb.Worksheets[1]; //获取源文件第一个工作表
Excel.Worksheet ws1 = wb1.Worksheets[1]; //获取新建工作簿当中第一个工作表
ws.Range[rangeAddress].Copy(ws1.Range["A1"]); //复制指定区域到新建工作簿A1开始单元格

string savePath = filePath.Substring(0,filePath.LastIndexOf("\\")+1)+ Path.GetFileNameWithoutExtension(filePath) + "New";
wb1.SaveAs(savePath,51);//保存新建工作簿
wb1.Close();
wb.Close(false);
excelApp.Quit();
return "保存成功,新文件路径为:" + savePath;
}
}
}

111,079

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧