如何将byte []写入Excel文件?

时间:2011-07-26 08:16:04

标签: c# excel export byte bytearray

我是c#的新手,虽然我控制了所有的基础知识。我基本上有一个加速度计(向上/向下)的y轴的byte [],我称之为Y []。我需要一行代码将其导出到excel文件(我使用Office professional 2003)。我想将值Y [0]写入单元格A1,Y [1]到A2,依此类推(所以只需要一列数据。这样做的目的是能够使用excel更轻松地操作数据)并且能够绘制它。我知道有一些用于c#的绘图应用,比如zed图,但我更喜欢excel。

我看得远远,没有找到任何帮助我的东西。我需要做的就是创建一个excel(.xls)文件,在其上写,保存并关闭它。但是怎么样?你使用FileStream吗?或者是什么?如果你理解我的问题,请给我一两行我需要的代码。我很接近完成这个小项目!!!

非常感谢你们。

2 个答案:

答案 0 :(得分:1)

  1. 看这里:http://social.msdn.microsoft.com/Forums/en-ZA/csharpgeneral/thread/ef11a193-54f3-407b-9374-9f5770fd9fd7
  2. 之后,将您的字节转换为Excel之前将其写入Excel。通过Y []数组可以循环完成。

    上面链接中的代码段

    Excel.Application excelApp = new Excel.Application();
    string myPath = @"C:\Excel.xls";
    excelApp.Workbooks.Open(myPath);
    int rowIndex = 1; int colIndex = 1;
    
    excelApp.Cells[rowIndex, colIndex] = "First";
    excelApp.Visible = true;
    

    这会阻止你吗?

答案 1 :(得分:0)

所以,我最终使用的代码如下。 我有一个字节数组,我不打算详细说明如何得到它,但它被称为AllY []。然后我将其转换为一个名为MyYData []的字符串数组,它以字符串形式保存相同的值。

for (int F = 0; F < (21*SECT); F++)
{
     Console.WriteLine(AllY[F]);   // Shows the byte array mentioned.
     MyYData[F] = AllY[F].ToString();  // The data is sotred as succesions of strings.
}
Console.ReadKey();

Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
string myPath = @"C:\Documents and Settings\John\My Documents\DATA.xls";   // The main downside to this code, is that the document must exist prior to code execution (but i'm sure you guys can figure out a way for the code to create de document).
excelApp.Workbooks.Open(myPath);                                                            

for (int r = 1; r < ((21 * SECT)+1); r++)  // r must be set to 1, because cell 0x0 doesn't exist!
{
     int rowIndex = r;
     int colIndex = 1;
     excelApp.Cells[rowIndex, colIndex] = MyYData[r-1];
     excelApp.Visible = true;
}
Console.ReadKey();

谢谢大家。我想说这个网站比“官方”的微软msdn糟糕网站好100倍。

此外,我忘了添加使用excel命令,你必须从项目菜单中添加一个引用&gt;添加参考&gt; COM&gt; Microsoft Excel 11.0对象(数量可能会有所不同)。然后在文档的标题处添加:

使用Microsoft.Office.Core; 使用Excel = Microsoft.Office.Interop.Excel;

为每个人欢呼,并保持编码!