Ошибка "не найдена колонка" при переносе данных из Excel - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую. Появились проблемы при выполнении дипломной работы, при нажатии кнопки "печать" программа отправляет на печать пустой лист, а при нажатии на кнопку "отправить в MS Excel" появляется эта ошибка. Менял значение даже на то которое записано в бд, все равно жалуется. И еще не могу разобраться с кнопкой сохранить изменения в DGV, ошибки не выходят, но и не сохраняет. Вот код полностью:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
using Excel = Microsoft.Office.Interop.Excel;
 
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "iSTran12DataSet.ТС". При необходимости она может быть перемещена или удалена.
            this.тСTableAdapter.Fill(this.iSTran12DataSet.ТС);
 
        }
 
        private void ExportToExcel()
        {
            Excel.Application exApp = new Excel.Application();
            exApp.Workbooks.Add();
            Worksheet workSheet = (Worksheet)exApp.ActiveSheet;
            workSheet.Cells[1, 1] = "ID ТС";
            workSheet.Cells[1, 2] = "Марка";
            workSheet.Cells[1, 3] = "Модель";
            workSheet.Cells[1, 4] = "Рег.Номер";
            workSheet.Cells[1, 5] = "Гараж.Номер";
            workSheet.Cells[1, 6] = "VIN";
            workSheet.Cells[1, 7] = "Год Выпуска";
            workSheet.Cells[1, 8] = "Модель Двигателя";
            workSheet.Cells[1, 9] = "Номер Двигателя";
            workSheet.Cells[1, 10] = "Тип ТС";
            workSheet.Cells[1, 11] = "Шасси/Рама";
            workSheet.Cells[1, 12] = "Номер Кузова";
            workSheet.Cells[1, 13] = "Цвет";
            workSheet.Cells[1, 14] = "Мощность";
            workSheet.Cells[1, 15] = "Объём Двигателя";
            workSheet.Cells[1, 16] = "ПТС/ПСМ";
            workSheet.Cells[1, 17] = "Собственник";
            workSheet.Cells[1, 18] = "Топливо";
            workSheet.Cells[1, 19] = "Арендатор";
            workSheet.Cells[1, 20] = "Автошины";
            workSheet.Cells[1, 21] = "Тип Двигателя";
            workSheet.Cells[1, 22] = "Разрешенная мах масса";
            workSheet.Cells[1, 23] = "Категория";
            workSheet.Cells[1, 24] = "ТО";
            workSheet.Cells[1, 25] = "Ремонтные работы";
 
            int rowExcel = 2; //начать со второй строки.
 
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                //заполняем строку
                workSheet.Cells[rowExcel, "A"] = dataGridView1.Rows[i].Cells["ID ТС"].Value;
                workSheet.Cells[rowExcel, "B"] = dataGridView1.Rows[i].Cells["Марка"].Value;
                workSheet.Cells[rowExcel, "C"] = dataGridView1.Rows[i].Cells["Модель"].Value;
                workSheet.Cells[rowExcel, "D"] = dataGridView1.Rows[i].Cells["Рег.Номер"].Value;
                workSheet.Cells[rowExcel, "E"] = dataGridView1.Rows[i].Cells["Гараж.Номер"].Value;
                workSheet.Cells[rowExcel, "F"] = dataGridView1.Rows[i].Cells["VIN"].Value;
                workSheet.Cells[rowExcel, "G"] = dataGridView1.Rows[i].Cells["Год Выпуска"].Value;
                workSheet.Cells[rowExcel, "H"] = dataGridView1.Rows[i].Cells["Модель Двигателя"].Value;
                workSheet.Cells[rowExcel, "I"] = dataGridView1.Rows[i].Cells["Номер Двигателя"].Value;
                workSheet.Cells[rowExcel, "J"] = dataGridView1.Rows[i].Cells["Тип ТС"].Value;
                workSheet.Cells[rowExcel, "K"] = dataGridView1.Rows[i].Cells["Шасси/Рама"].Value;
                workSheet.Cells[rowExcel, "L"] = dataGridView1.Rows[i].Cells["Номер Кузова"].Value;
                workSheet.Cells[rowExcel, "M"] = dataGridView1.Rows[i].Cells["Цвет"].Value;
                workSheet.Cells[rowExcel, "N"] = dataGridView1.Rows[i].Cells["Мощность"].Value;
                workSheet.Cells[rowExcel, "O"] = dataGridView1.Rows[i].Cells["Объём Двигателя"].Value;
                workSheet.Cells[rowExcel, "P"] = dataGridView1.Rows[i].Cells["ПТС/ПСМ"].Value;
                workSheet.Cells[rowExcel, "Q"] = dataGridView1.Rows[i].Cells["Собственник"].Value;
                workSheet.Cells[rowExcel, "R"] = dataGridView1.Rows[i].Cells["Топливо"].Value;
                workSheet.Cells[rowExcel, "S"] = dataGridView1.Rows[i].Cells["Арендатор"].Value;
                workSheet.Cells[rowExcel, "T"] = dataGridView1.Rows[i].Cells["Автошины"].Value;
                workSheet.Cells[rowExcel, "U"] = dataGridView1.Rows[i].Cells["Тип Двигателя"].Value;
                workSheet.Cells[rowExcel, "V"] = dataGridView1.Rows[i].Cells["Разрешенная мах масса"].Value;
                workSheet.Cells[rowExcel, "W"] = dataGridView1.Rows[i].Cells["Категория"].Value;
                workSheet.Cells[rowExcel, "X"] = dataGridView1.Rows[i].Cells["ТО"].Value;
                workSheet.Cells[rowExcel, "Y"] = dataGridView1.Rows[i].Cells["Ремонтные работы"].Value;
 
                ++rowExcel;
            }
            string pathToXmlFile;
            pathToXmlFile = Environment.CurrentDirectory + "" + "MyFile.xls";
 
            workSheet.SaveAs(pathToXmlFile);
            exApp.Quit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            printDocument1.Print();
        }
 
        private void printDocument_PrintPage(object sender, PrintPageEventArgs e) // Метод печати для printDocument
        {
            Bitmap bmp = new Bitmap(dataGridView1.Size.Width + 10, dataGridView1.Size.Height + 10);
            dataGridView1.DrawToBitmap(bmp, dataGridView1.Bounds);
            e.Graphics.DrawImage(bmp, 0, 0);
        }
 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
 
        private void button1_Click_1(object sender, EventArgs e)
        {
            ExportToExcel();
        }
 
    }
}

Решение задачи: «Ошибка "не найдена колонка" при переносе данных из Excel»

textual
Листинг программы
public void SaveF(DataGridView GRID, string Name)
    {
 
 
        try
        {
 
            GRID.SelectAll();
            Clipboard.SetDataObject(GRID.GetClipboardContent());
 
            
 
            Stream myStream;
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
 
           saveFileDialog1.Filter = "xls files (*.xls)|*.xls|csv files (*.csv)|*.csv";
 
          //  saveFileDialog1.Filter = "xls files (*.xls)|*.xls";
            saveFileDialog1.FilterIndex = 0;
            saveFileDialog1.RestoreDirectory = true;
            saveFileDialog1.FileName = Name;
 
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
           //     if ((myStream = saveFileDialog1.OpenFile()) != null && saveFileDialog1.FilterIndex == 1 || saveFileDialog1.FilterIndex == 2)
                    if ((myStream = saveFileDialog1.OpenFile()) != null && saveFileDialog1.FilterIndex == 1)
                {
 
 
                    StreamWriter myWriter = new StreamWriter(myStream, System.Text.Encoding.Unicode);
 
                    myWriter.Write(Clipboard.GetText());
                    myWriter.WriteLine();
 
 
                    myWriter.Close();
                    MessageBox.Show("Успешно сохранено");
 
                }
 
 
 
 
                GRID.ClearSelection();
                
                                if (saveFileDialog1.FilterIndex == 2)
                                {
                                        StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.Unicode);
                                        int i;
                                        sw.Write(GRID.TopLeftHeaderCell.Value);
                                        sw.Write(";");
 
                                        for (i = 0; i < GRID.ColumnCount; i++)
                                        {
                                            sw.Write(GRID.Columns[i].HeaderCell.Value);
                                            if (i < GRID.ColumnCount - 1)
                                            {
                                                sw.Write(";");
                                            }
 
                                        }
                                        sw.Write(sw.NewLine);
 
                                        foreach (DataGridViewRow dr in GRID.Rows)
                                        {
                                            bool flag = true;
 
                                            for (i = 0; i < GRID.ColumnCount; i++)
                                            {
                                                if (flag == true)
                                                {
                                                    sw.Write(dr.HeaderCell.Value);
                                                    sw.Write(";");
                                                    flag = false;
                                                }
 
                                                sw.Write(dr.Cells[i].Value);
                                                if (i < GRID.ColumnCount - 1)
                                                {
                                                    sw.Write(";");
                                                }
                                            }
                                            sw.Write(sw.NewLine);
                          
                                        }
                                        sw.Close();
                                        MessageBox.Show("Успешно сохранено");
                                    }
                               
            }
 
          //  GRID.ClearSelection();
 
        }
 
       catch { MessageBox.Show("Сохранение невозможно (Возможно файл занят другим процессом)");}
 
 
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы