ListBox в Excel - PullRequest
       6

ListBox в Excel

0 голосов
/ 10 сентября 2011

Хорошо, у меня есть класс customer, который я использую для обработки данных, а затем добавляю в список, как показано ниже:

   //Submit data from current form         
   customer aCustomer = new customer(comboBox1.Text, textBox1.Text, ChannelSelecBox.Text,
     PurchaserTextBox.Text, NameTextBox.Text, emailTextBox.Text, AddressTextBox.Text, StateBox.Text,
     PayMethodDropDown.Text, Prod1Num.Value.ToString(), Prod2Num.Value.ToString(), 
    Prod3Num.Value.ToString(), Prod4Num.Value.ToString(), Prod5Num.Value.ToString(), 
    Prod6Num.Value.ToString(), SubTData.Text, DiscountTextBox.Text, TaxData.Text, CommentTextBox.Text, 
    ShipData.Text, TotalData.Text);

           // Add aCustomer to ListBox
           Orders.Items.Add(aCustomer);

У меня есть переопределение строки, так что в списке просто отображается покупатель и дата. Теперь я хочу взять все заказы, введенные в поле списка, и поместить большую часть этих данных в электронную таблицу Excel, каждый в отдельный столбец. Как я мог это сделать?

Если вам нужна дополнительная информация или чтобы увидеть больше моего кода, дайте мне знать.

Ответы [ 2 ]

1 голос
/ 10 сентября 2011

попробуйте следующее;

object oOpt = System.Reflection.Missing.Value; //for optional arguments
Excel.Application oXL = new Excel.Application();
Excel.Workbooks oWBs = oXL.Workbooks;
Excel.Workbook oWB = oWBs.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet oSheet = (Excel.Worksheet)oWB.ActiveSheet;

//outputRows is a List<List<object>>
int numberOfRows = outputRows.Count;
int numberOfColumns = outputRows.Max(list => list.Count);

Excel.Range oRng = 
    oSheet.get_Range("A1", oOpt)
        .get_Resize(numberOfRows, numberOfColumns);

object[,] outputArray = new object[numberOfRows, numberOfColumns];

for (int row = 0; row < numberOfRows; row++)
{
    for (int col = 0; col < outputRows[row].Count; col++)
    {
        outputArray[row, col] = outputRows[row][col];
    }
}

oRng.set_Value(oOpt, outputArray);

oXL.Visible = true;

Более подробную информацию можно найти на http://csharp.net -informations.com / excel / csharp-create-excel.htm

0 голосов
/ 10 сентября 2011

Используйте CSV в качестве формата файла, а не XLS.Excel это боль.Особенно при чтении из XLS.Некоторое неправильное форматирование ячеек, и вы иногда получаете значение, а иногда нет.Даже в одном файле.Личный опыт.

...