gpt4 book ai didi

c# - 使用 C# 选择、复制和重新插入一系列 Excel 行

转载 作者:行者123 更新时间:2023-12-04 22:25:38 26 4
gpt4 key购买 nike

使用 C# 替换 Delphi 中现有且现已失效的遗留例程,我一直在尝试在 C# 中重新开发一个在 Delphi 7 中运行良好的例程,它将打开我的 30 个 Excel 文件中的每一个,选择每个中的最后 22 行,复制它们,然后将它们重新插入各自的文件中。

例如,我找到最后一行,2019 年 8 月有 22 个工作日,所以我从最后一行开始我的范围 22 行。

使用 Excel 文件,我想选择范围为 A4157 的行至A4178 .然后,我想取出我复制的行并将它们插入到行 A4156 之后或行前 A4157 .然后,我获取一个单独的 8 月日期列表,并将它们写入 A4178 中较低的 22 个日期中的每一个。至A4200 .七月结束,八月的行已准备就绪。

我保留最后一行,因为同一工作簿中其他工作表上的其他计算引用数据的最后一行,它们将自动从 A4178 开始索引至A4200这样做。

由于在该月进行的每个条目,其数据都被复制到最后一行,因此最后一行始终是最新的。工作簿中的另一个工作表在其摘要中使用最新数据。

到目前为止,我可以打开 Excel 工作簿并获得正确的工作表。

以下确实突出显示了正确的行,但出现运行时错误。我不确定那是什么意思。

我已经注释掉了“选择”行并以相同的结果运行“复制”行。我现在进入第二周,试图解决这个问题。如果可能,我需要一个正常运行的例程示例。指向 C# 上的文本的链接 - MS 接口(interface)将是一个很大的帮助。

Excel.Range selectRange = excelWorkSheet.Range[excelWorkSheet.Cells[A4157], excelWorkSheet.Cells[A4178].select;
Excel.Range copyRange = excelWorkSheet.Range[excelWorkSheet.Cells[A4157], excelWorkSheet.Cells[A4178]].select;

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'Cannot implicitly convert type 'bool' to 'Microsoft.Office.Interop.Excel.Range''

最佳答案

我不是 100% 清楚你在最终工作表中想要什么。但我认为你正在尝试做这样的事情。

  // In your example startRow = 4157 and lastRow = 4178.

// Get the rows to copy (rows 4157 to 4178 in your example).
Excel.Range copyRange = excelWorkSheet.Rows[startRow + ":" + lastRow];

// Insert enough new rows to fit the rows we're copying.
copyRange.Insert(Excel.XlInsertShiftDirection.xlShiftDown);

// The copied data will be put in the same place (starting at row 4157 in
// your example).
Excel.Range dest = excelWorkSheet.Rows[startRow + ":" + lastRow];

copyRange.Copy(dest);

关于c# - 使用 C# 选择、复制和重新插入一系列 Excel 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57958606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com