【问题标题】:Excel Data ManipulationExcel数据处理
【发布时间】:2011-12-19 19:20:49
【问题描述】:

我可以打开一个预设的 Excel 文档 (.xls/.xlsx) 并使用以下方法更改特定单元格:

Microsoft.Office.Interop.Excel.Range date = theWorkSheet1.UsedRange;
date = date.get_Range("B4");
date.Value = theDate;

但是,这只允许我更改指定的单元格值(在本例中为 B4)。我遇到了 Radio ButtonsCheck Boxes 并想使用我的 GUI 和自定义功能来更改当前 Excel 工作表中的这些值。因此,如果选中或启用了我的 C# GUI 中的某些内容,则 excel 文件中的单选按钮/复选框将相应更改。

有不止一组单选按钮和复选框。

谁能帮我弄清楚如何阅读不同组的单选按钮和复选框并根据一组规则正确填充它们?

【问题讨论】:

  • 几年前我做一些 Office 互操作的东西时,我发现它的文档记录很差,很难得到答案。如果您可以依赖 xlsx 文档作为源(而不是较旧的 xls),您可能需要查看 Microsoft 的 Open XML SDK microsoft.com/download/en/details.aspx?id=5124
  • @Eric J:不幸的是,大多数/所有文件都将是旧格式(xls)......我只是添加了 xlsx,以防文件得到更新......他们可能会不是:(。

标签: c# excel checkbox radio-button cell


【解决方案1】:

Worksheet 对象将具有名为CheckBoxesOptionButtons 的属性。其中每一个都是工作表上所有复选框和选项按钮的集合,分别。您可以将其Value 属性设置为 0(未选中)、1(已选中)或 2(不确定),例如:

工作表.Checkboxes("Checkbox1").Value = 1

某些工作表上可能有 OLEObjects 而不是普通的旧 Excel 复选框,在这种情况下,您必须这样做:

工作表.OLEObjects("Checkbox1").Object.Value = 1

【讨论】:

  • 太棒了!不过有一个问题.. 我似乎找不到/使用 CheckBoxesOptionButtons 属性。我试过theWorkSheet1.CheckBoxestheWorkSheet1.OptionsButtons 但都没有成功...你知道为什么会这样吗?
  • 对于 ActiveSheet.CheckBoxes 中的每个 a : MsgBox a.Name : Next
  • 所以问题是......我正在使用一个 C# 程序来打开一个 excel 工作簿......并且从 C# 程序......取决于是否发生某些规则会改变实际的 excel 电子表格的复选框已检查和/或选项按钮的选择...
  • 我的意思是,在您认为有复选框的工作表上创建一个 VBA 宏(作为实验)并运行该代码 ^ 这将帮助您确定是否真的有复选框工作表及其名称。如果它们在那里,您应该能够从 C# 设置 theWorkSheet1.CheckBoxes(name).Value。
  • 也许它是一个 OLEObject?尝试在 ActiveSheet.OLEObjects 中的每个 a : MsgBox x.Name : Next
【解决方案2】:

PradeepLutare 使用 C# 为 Excel 文件中的复选框赋值

//获取Excel文件位置

xlWorkBook = xlApp.Workbooks.Open("C:\LPL\LPLRating.xls", misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue) ;

// 传递该 excel 文件中的工作簿名称

workSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("Rate Sheet - Primary");

//根据你的逻辑赋值。

workSheet.OLEObjects("CheckBox1").Object.Value = true;

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2019-08-17
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多