在我的 WPF MVVM Prism 应用程序中,我每秒从外部设备读取一些数据(通过 COM 端口)(我使用 System.Windows.Threading.DispatcherTimer)。每次我用读取的数据填充以下缓冲区时:
/// <summary>
/// Represents the point on the chart.
/// </summary>
public class ChartPoint
{
#region Fields
// The value from outer device.
private double _value;
// The date and time when the value was being obtained.
private DateTime _category;
#endregion
#region Constructors
public ChartPoint() { }
public ChartPoint(DateTime category, double value)
{
this.Category = category;
this.Value = value;
}
#endregion
#region Properties
public double Value
{
get { return this._value; }
set
{
if (double.IsNaN(value) || double.IsInfinity(value))
value = 0;
this._value = value;
}
}
public DateTime Category
{
get { return this._category; }
set { this._category = value; }
}
#endregion
}
我需要将以下数据导出到 Microsoft Excel:
DateTime currentDate = ChartPoint.Category.Date;
TimeSpan currentTime = ChartPoint.Category.TimeOfDay;
double currentValue = ChartPoint.Value;
时间值必须在用户友好视图中,例如:09:21:54 (hh:mm:ss)。这里必须加上测量超声波束的名称。例如:
string measuringBeam = "beam 1";
or
string measuringBeam = "beam 2";
等等,梁的总数 - 八(8)。所以 MS Excel 表格中每一行的格式必须是:
____________________________________________________________
| Current Date | Current Time | Measuring Beam | The Value |
------------------------------------------------------------
| 04.10.2016 | 09:21:54 | beam 1 | 347.25 |
------------------------------------------------------------
. . . . . . . . . . . . . and so on. . . . . . . . . . . .
我认为在每个计时器滴答期间应该创建每一下一行。所以我需要以编程方式创建包含具有上述格式的表格的 MS Excel 文件,将此文件保存在特定文件夹中,并在那里添加新行。我认为提高导出率不应该是每行,而是每十行甚至每百行。也就是说,一旦创建了下一百行,它就会存储在 Excel 文件中。整个导出操作将通过选择下拉菜单中的相应项来运行,并以同样的方式停止。每次导出开始时,都必须为导出的数据创建一个新的 Excel 文件。我之前和 VSTO 都没有使用过 Excel 对象模型。但现在遇到这样的必然。我开始在 MSDN 中阅读有关 VSTO 的内容,但我对创建我的应用程序的条款感到非常拥挤。请帮助创建导出到 Excel。好榜样将是伟大的。您的帮助将不胜感激。