c# - 在 C# 中使用转置进行复制和粘贴
问题描述
我正在尝试将一系列单元格从一个工作簿复制到另一个工作簿,它工作正常,但是当我尝试将 SaveAs 函数与转置一起使用时,它给了我一个错误:
System.Reflection.TargetInvocationException: '调用的目标已抛出异常。'
内部异常。COMException: Range 类的 PasteSpecial 方法失败
这是我的代码:
private void CopyTranspose(string rawFile, string tempFile, string dataFile, string oldCells, string newCells)
{
try
{
object missing = Type.Missing;
//Copying data
Excel.Application oldApp = new Excel.Application();
oldApp.Application.DisplayAlerts = false;
oldApp.Application.Visible = false;
oldApp.Application.DisplayAlerts = false;
Excel.Workbook oldWorkBook = oldApp.Workbooks.Open(rawFile);
Excel.Worksheet oldWorkSheet = oldWorkBook.Worksheets.get_Item(1);
Excel.Range oldRange = oldWorkSheet.Range[oldCells];
oldRange.Copy(Type.Missing);
//Pasting data
Excel.Application newApp = new Excel.Application();
Excel.Workbook newWorkBook = newApp.Workbooks.Open(tempFile, 0, false);
newApp.Application.DisplayAlerts = false;
newApp.Application.Visible = false;
newApp.Application.DisplayAlerts = false;
Excel.Worksheet newWorkSheet = newWorkBook.Worksheets.get_Item(1);
Excel.Range newRange = newWorkSheet.Range[newCells];
newRange.Select();
newWorkSheet.Paste(Type.Missing, Type.Missing); //This line works but it doesn't do the transpose
newRange.PasteSpecial(Excel.XlPasteType.xlPasteValues,
Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, true, true); //this line does the transpose but it fails
oldWorkBook.Close(false, null, null);
oldApp.Quit();
//Saving File
newWorkBook.SaveAs(dataFile, missing, missing, missing, missing, false);
newWorkBook.Close(false, null, null);
newApp.Quit();
}
catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); }
}
这是输出窗口上的例外:
引发异常:范围类的 mscorlib.dll PasteSpecial 方法中的“System.Runtime.InteropServices.COMException”失败
任何帮助将不胜感激,我不仅在寻找修复程序,而且还想了解我的代码有什么问题,谢谢!
解决方案
推荐阅读
- android - 订阅 scheduler.io() 不起作用
- python - 在控制 MultiIndex 值的同时连接 Pandas 数据帧和系列
- node.js - 浏览器不存储 HTTPOnly cookie?
- c++ - 向不可变纹理存储提供数据
- c# - 查找类中最常见的属性
- javascript - 尝试使用 node-fetch 启动机器人时出错
- python-3.x - 将键返回到随机选择的字典值
- list - 在 Haskell 中删除或添加项目到列表
- java - 行代码connection.connect(); 不能在 java android 上工作
- google-sheets - 在 Google 表格中的“内在价值”内过滤