在Excel中插入和更新数据

时间:2010-06-09 03:07:53

标签: c# excel

到目前为止,所有Excel的内容都围绕打开文件,为其编写值并保存它。

有没有办法自动更新Excel中的数据(当它打开时)?

谢谢!

P.S。我正在寻找有关Microsoft.Office.Interop.Excel;

的更多信息

3 个答案:

答案 0 :(得分:1)

不确定你是如何编写数据的,但是为了从Excel读取数据,这就是我的工作:

选择我需要的范围(可以从一个单元格到多个行和列 - 这里是单个单元格):

Excel.Range cell = m_worksheet.get_Range(_CellName(end, column), _CellName(end, column));

然后从所选单元格中获取所需的值:

string value = cell.Value2.ToString().Substring(...);

如果有任何颜色,你也可以操纵颜色:

if(Convert.ToInt32(cell.Interior.ColorIndex) == 6) //we have yellow background
但是,如果您的用户使用Excel 2007,请小心使用颜色。你必须使用RGB代码。

此外,在处理Excel文件时,我认为它已锁定其他应用程序。您必须检查第三方是否重新读取值。

对于_CellName:

private string _CellName(int row, int col)
 {
      string result = "";
      if (col > 26) // for columns like 'AA' 
      {
           result = ((char)((char)(col / 26) + 'A' - 1)).ToString(); //get the first letter
      }
      result += ((char)((char)(col % 26) + 'A' - 1)).ToString(); //get the second/only letter
      return result + Convert.ToString(row);
 }

答案 1 :(得分:0)

您可以使用计时器并重新启动以进行定期更新或执行任何操作。 该链接详细描述了该概念。 http://www.ehow.com/how_5052033_insert-timer-ms-excel.html
在您的情况下它的工作方式是定期允许您从外部资源获取数据,然后您可以编写一些VBA代码(或宏)来更新您的工作表。
就像股票代码一样。

答案 2 :(得分:0)

为什么不通过ADO访问excel并将其视为数据库? http://www.connectionstrings.com/excel