如何将 2 个 Excel 文件合并为一个具有不同工作表的 Excel 文件?

2023-12-12

我有 2 个 Excel 文件,我想将它们合并为 1 个具有单独工作表的文件。

我尝试与 Microsoft.Office.Interop.Excel 进行合并, 但我不明白如何使用它?

对于叶海亚:

这里是获取范围的方法,我想将它们与不同的文件合并:

internal object[,] GetValues(string filename)
    {
        object[,] values = new object[0, 0];
        try
        {
            Workbook workBook = _excelApp.Workbooks.Open(filename,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing);

            values = ExcelScanIntenal(workBook);

            workBook.Close(false, filename, null);
            Marshal.ReleaseComObject(workBook);
        }
        catch
        {
        }
        return values;
    }

    private object[,] ExcelScanIntenal(Workbook workBookIn)
    {
        object[,] valueArray = new object[0, 0];
        Worksheet sheet = (Worksheet)workBookIn.Sheets[1];

        Range excelRange = sheet.UsedRange;
        valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
        return valueArray;
    }

在这里我想合并这些值:

   internal void AddWorksheetToExcelWorkbook(string filename, string worksheetName, object[,] valueArray)
    {
        Microsoft.Office.Interop.Excel.Application xlApp = null;
        Workbook xlWorkbook = null;
        Sheets xlSheets = null;
        Worksheet xlNewSheet = null;

        try
        {
            xlApp = new Microsoft.Office.Interop.Excel.Application();

            if (xlApp == null)
                return;

            xlWorkbook = xlApp.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

            xlSheets = xlWorkbook.Sheets as Sheets;

            xlNewSheet = (Worksheet)xlSheets.Add(xlSheets[1], Type.Missing, Type.Missing, Type.Missing);
            xlNewSheet.Name = worksheetName;

            xlWorkbook.Save();
            xlWorkbook.Close(Type.Missing, Type.Missing, Type.Missing);
            xlApp.Quit();
        }
        finally
        {
            Marshal.ReleaseComObject(xlNewSheet);
            Marshal.ReleaseComObject(xlSheets);
            Marshal.ReleaseComObject(xlWorkbook);
            Marshal.ReleaseComObject(xlApp);
            xlApp = null;
        }
    }

问题是 xlNewSheet 没有任何可以获取值的属性..我该如何添加?


不太确定问题是什么...但要以编程方式合并 excel 文件,请参阅以下起点:

  • http://www.dotnetspider.com/forum/242869-How-merge-two-excel-sheets-c.aspx
  • http://www.dotnetperls.com/excel

如果您需要更多信息,请显示一些代码并告诉到底什么不起作用......

编辑 - 根据评论:

您可以使用xlNewSheet.Cells获取一个 Range 并使用它Columns/Rows/Item属性更改/添加您想要的任何值 - 即在您的情况下valueArray...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 2 个 Excel 文件合并为一个具有不同工作表的 Excel 文件? 的相关文章

随机推荐

  • 使用相同应用程序 android 的 Facebook API 好友

    我有一个代码可以从 facebook api 检索所有朋友 但我只想获取使用应用程序的 facebook 朋友 我尝试了 fb request me friends fields installed 但从未工作过 我需要额外的许可吗 这是我
  • Nodejs加密模块,hash.update()是否将所有输入存储在内存中

    我有一个 API 路由 可以代理从浏览器 客户端到 AWS S3 的文件上传 此 API 路由尝试在上传文件时对其进行流式传输 以避免将文件的全部内容缓冲在服务器的内存中 但是 该路由还会尝试计算文件正文的 MD5 校验和 当文件的每个部分
  • matplotlib 中的最后一个图形标记未完全显示

    我是 matplotlib 的新手 我在 matplotlib 中的图表没有完全显示最后一个标记 我尝试过增加图形大小 但没有任何变化 我需要扩展图形 以便它显示最后一个标记 并将线条延伸到标记之外 这是我的代码 import numpy
  • Javascript对象按日、月、年分组

    我正在开发一个应用程序 我需要对不同的 JavaScript 对象集进行分组 这些对象将基于月 日和年 这一天我的做法如下 var calculateByDay function inputList var outPutList var r
  • 将范围添加到 ActiveRecord 会导致层次结构错误

    我刚刚转换了所有 Rails 模型以供使用uuid作为主键替换 但这打破了 first and last方法 所以我尝试添加一个按以下方式排序的默认范围created at代替id 我的担忧是这样的 config initializers
  • 找出当前用户的用户名 - 当多个用户登录时

    用户A 已登录 我的应用程序将Environment Username识别为 User A 现在在 Windows 中 我单击 切换用户 用户B 登录 用户 A 的进程仍在运行 用户 A 运行的应用程序仍然显示环境 用户名是 用户 A 我希
  • 如何在 C# 中计算 OneDrive XOrHash

    我们希望以与 OneDrive 相同的方式计算 XOrHash 以便我们可以检测与 OD4B 后端同步所需的任何更改 我有当前使用的 XOrHash 算法的实现 可以在这里找到https learn microsoft com en us
  • 如何使用 Zapier 代码发布推文

    以下内容在 Code by Zapier 操作中不起作用 fetch https api twitter com 1 1 statuses update json status encodeURIComponent textToTweet
  • Java内存转储问题

    我尝试使用下面的代码创建内存转储 usr lib jvm j2sdk1 5 sun bin jmap heap 10699 但我遇到了下面提到的错误 任何人都可以帮助我 正在附加进程 ID 10699 请稍候 附加到进程时出错 sun jv
  • 不带参数的 git filter-branch 有什么作用?

    什么是git filter branch没有争论吗 我在我的仓库上运行了这个 不小心过早地按了回车键 没有什么 它似乎计算了哈希值并没有发现任何变化
  • ActionScript 2 缺乏 Flash ActionScript 3 功能

    自从 Adob e 随 Flash Player 9 引入 ActionScript 3 以来 我们中的许多人转换得很慢 简而言之 我想知道 AS3 作为一个框架可以做什么 这在 AS2 中是根本不可能或非常困难的 我不是在谈论现成的组件
  • 如何从 java servlet 中的 POST 数据中分离出查询字符串参数

    当您在 servlet 中收到 doGet 或 doPost 调用时 您可以使用getparameterxxx 在一个简单的地方获取查询字符串或发布数据 如果调用是 GET 您可以从 url 查询字符串获取数据 如果调用是 POST 您将获
  • CPU 如何从 RAM 访问应用程序和数据

    在应用程序加载到 RAM 并打开文件后 因此文件的数据也存储在 RAM 中 我在理解 CPU 如何从 RAM 访问应用程序和数据时遇到了一些困难 根据我的理解 CPU 只是在程序计数器滴答时从 RAM 获取指令或在中断后执行任务 那么它如何
  • 在 protobuf 消息中存储单个字节

    我使用什么数据类型在协议缓冲区消息中存储单个字节 查看列表位于https developers google com protocol buffers docs proto scalar似乎 int32 类型之一是最合适的 有没有更有效的方
  • 使用比较运算符比较 time_t 值

    我有2个time t值 我想找出哪一个更大 time t是内部的 int64在我的平台上 我可以用吗 lt gt and 运算符来比较值 我不想知道两个时间值之间的差异 代码只会在 Windows 上运行 所以我不关心可移植性 以这种方式比
  • 如何使用Python脚本控制LabView VI前面板开关(开/关、条调节器)?

    我有一个LabView前面板控制硬件的开关和传感器电压调节器 需要使用 Python 脚本来控制它们 我对此了解不多LabView 请解释如何做到这一点 我在 LabVIEW 讨论板上找到了一份参考资料 该参考资料成功地this 它使用以下
  • 如何在 C++ 中将窗口的屏幕截图作为位图对象获取?

    如何在 C 中将窗口的屏幕截图作为位图对象获取 假设我已经有了窗口句柄 我还想知道是否可以在最小化状态下获取窗口的屏幕截图 这里的 C 是指 VC 以及与 Windows XP win32 相关的所有库 你应该调用 PrintWindow
  • RubyMine 代码自动完成

    我即将习惯在 Android Studio 中使用 Java 最棒的是一切都被强烈声明 因此 当我输入 MyClass someme 时 IDE 会为我提供高级代码自动完成功能 发展是迅速而令人愉快的 但后来我想学习 RubyOnRails
  • 如何在 Bash 中读取文件或标准输入

    以下 Perl 脚本 my pl 可以从命令行参数中的文件或从标准输入 标准输入 while lt gt print perl my pl将从标准输入读取 而perl my pl a txt将从中读取a txt 这非常方便 Bash 中有类
  • 如何将 2 个 Excel 文件合并为一个具有不同工作表的 Excel 文件?

    我有 2 个 Excel 文件 我想将它们合并为 1 个具有单独工作表的文件 我尝试与 Microsoft Office Interop Excel 进行合并 但我不明白如何使用它 对于叶海亚 这里是获取范围的方法 我想将它们与不同的文件合