Как мне записать байт [] в файл Excel? - PullRequest
2 голосов
/ 26 июля 2011

Я очень новичок в c #, хотя я контролирую все основы. По сути, у меня есть байт [] для оси Y акселерометра (вверх / вниз), который я назвал Y []. Мне нужна одна строка кода для экспорта в файл Excel (я работаю с Office профессиональный 2003). Я хотел бы, чтобы значение Y [0] было записано в ячейку A1, Y [1] в A2 и т. Д. (Так что это всего лишь один столбец данных. Цель этого состоит в том, чтобы иметь возможность использовать Excel для более удобной работы с данными и быть в состоянии построить его. Я знаю, что есть приложения для построения графиков на c #, такие как zed graph, но я предпочитаю excel.

Я посмотрел повсюду и не нашел ничего, что могло бы мне помочь. Все, что мне нужно сделать, это создать файл Excel (.xls), написать на нем, сохранить его и закрыть его. Но как? Вы используете FileStream? или что? пожалуйста, если вы понимаете мою проблему, дайте мне одну или две строки кода, которые мне нужны. Я так близок к завершению этого маленького проекта !!!

Большое спасибо, ребята.

Ответы [ 2 ]

1 голос
/ 26 июля 2011
  1. Смотрите здесь: http://social.msdn.microsoft.com/Forums/en-ZA/csharpgeneral/thread/ef11a193-54f3-407b-9374-9f5770fd9fd7

После этого запишите свой байт в 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;

Это разблокирует вас?

0 голосов
/ 27 июля 2011

Итак, код, который я использовал, был следующий. У меня был байтовый массив, который я не буду вдаваться в подробности о том, как он его получил, но он назывался 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();

Спасибо всем. И я хотел бы сказать, что этот веб-сайт работает в 100 раз лучше, чем «официальный» сайт Microsoft MSDN Crappy.

Кроме того, я забыл добавить, что для использования команд Excel необходимо добавить ссылку из меню проекта> Добавить ссылку> COM> объект Microsoft Excel 11.0 (число может отличаться). затем в заголовок документа добавьте:

с использованием Microsoft.Office.Core; использование Excel = Microsoft.Office.Interop.Excel;

Приветствует всех и держит это в коде!

...