gpt4 book ai didi

excel - 粘贴到 Excel 锁定单元格中

转载 作者:行者123 更新时间:2023-12-02 22:39:13 25 4
gpt4 key购买 nike

我正在创建一个模板供用户输入数据。我希望他们能够做的就是从源复制数据并将其放入单元格 A21-D21 中。一旦粘贴,它们就不能删除或更改任何内容,Excel 只能用于打印。重新粘贴就可以了,因为这将是一个模板。理想情况下,用户可以直接导出到此 protected 工作表中并使用它来完成,但仪器软件只调用 Excel,而不是特定的数据库位置。

简而言之,用户从仪器获取数据,并以无法操作的格式保存,但也不能在除仪器连接的计算机之外的任何计算机上显示。我需要将这些数据放入 Excel,但无法更改。审核员可以选择将原始数据与 Excel 进行比较。

是否有一种方法可以保护工作表并选择一个未锁定的单元格(设置单元格格式)A1,然后将 A21-D21 的整个范围填充/粘贴到?

我们的想法是,人们将操纵原始数据来获得他们想要的答案,但这将限制用户只能粘贴。

所以我想,简单来说,我希望找到一种允许用户复制/粘贴的方法,就是这样! ?

最佳答案

我不知道是否有办法在 Excel 中执行您想要的操作,但可以通过编程方式完成。

// Note: need to add reference to Microsoft.Office.Interop.Excel to get these namespaces
// In Visual Studio, choose Project > Add Reference > COM > Type Libraries >
// Microsoft Excel 16.0 Object Library
using Microsoft.Office.Interop.Excel;
using System.Collections.Generic;
using System.Runtime.InteropServices;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string fileName = @"c:\users\eric.sundquist\desktop\book1.xlsx";
int worksheetNumber = 1;
List<string> contents = new List<string> { "1", "2", "3", "4" };

PasteIntoProtectedSheet(fileName, worksheetNumber, contents);
}

static void PasteIntoProtectedSheet(string fileName, int worksheetNumber,
List<string> contents)
{
Application excel = new Application();
Workbook workbook = excel.Workbooks.Open(fileName);

workbook.Sheets[worksheetNumber].Unprotect();
// Can pass in password as parameter if needed

Range range = workbook.Sheets[1].Range("A21:D21");

for (int column = 0; column < contents.Count; column++)
{
range.Cells[1, column + 1] = contents[column];
}

workbook.Sheets[worksheetNumber].Protect();

workbook.Save();
workbook.Close();
Marshal.ReleaseComObject(range);
Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(excel);
}
}
}

关于excel - 粘贴到 Excel 锁定单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41814120/

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