更好的是,制作一个MIME Type
这样当用户双击“.por”文件时,它会触发一个 exe 来告诉用户该做什么。而不是在 Excel 中打开它。如果您不告诉他们,用户将不会知道 por 文件是 Excel 文件。
由于 xls 是二进制文件 - 如果文件的扩展名被更改,用户将不知道 MIME 类型,除非他们使用这样的东西:
确定 MAC 上传流文件的 MIME 类型
关于获取数据表并逐行将其写入 Excel 文件。
您可以轻松地将数据放入二维数组:
string[,] TwoDimensional = new string[dt.Rows.Count, dt.Columns.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; i++)
{
TwoDimensional[i, j] = dt.Rows[i][j].ToString();
}
}
并一举将它们设置在 Excel 中:
using (var targetRangeHeader = _excelApp.Range["A1"].WithComCleanup())
using (var targetRangeFirstDataCell = targetRangeHeader.Resource.Offset[1, 0].WithComCleanup())
using (var targetRange = targetRangeFirstDataCell.Resource.Resize[LengthOfArray, 1].WithComCleanup())
{
....
targetRange.Resource.Value2 = TwoDimensional;
请注意,我使用VSTO Contrib进行最终确定 - 即using
语句。
不要忘记这一点(记录当前的计算模式并恢复它而不是假设用户使用自动):
public static void TurnOffApplicationSettings(Excel.Application xlApp)
{
xlApp.ScreenUpdating = false;
xlApp.DisplayAlerts = false;
xlApp.Calculation = XlCalculation.xlCalculationManual;
xlApp.UserControl = false;
xlApp.EnableEvents = false;
}
public static void TurnOnApplicationSettings(Excel.Application xlApp)
{
xlApp.ScreenUpdating = true;
xlApp.DisplayAlerts = true;
xlApp.Calculation = XlCalculation.xlCalculationAutomatic;
xlApp.UserControl = true;
xlApp.EnableEvents = true;
}