Я пытаюсь создать программу, с помощью которой я импортирую данные из файла Excel (.xlsx), вносю в них изменения и затем сохраняю их обратно в файл Excel.У меня есть пара вопросов, с которыми я застрял, и надеюсь, вы могли бы помочь мне с этим:
Когда я экспортирую таблицу данных обратно в Excel, он пропускает заголовки, как я могу его получить?экспортировать это также?Все остальное экспортируется нормально.
На данный момент кажется, что я могу только сохранить экспорт как файл .xls, как я могу сохранить его как файл .xlsx.Я изменил имя файла на xlsx, он создает файл, но я не могу просмотреть его в Excel, потому что неверный формат.
Наконец, как и выше, я хотел сохранить его в исходном файле Excelгде я импортировал в сетку данных, однако я получаю сообщение об ошибке: «Не удается получить доступ к папке ..... / debug, она может быть повреждена или доступна только для чтения».
код для импорта данных Excel (.xlsx) в таблицу данных
public Form1()
{
InitializeComponent();
// populate the dataGridView with the Excel File
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;
""", @"C:\Documents and Settings\User\Desktop\Visual Studio\GBstock\GBstock\bin\Debug\FORM TEST.xlsx");
string query = String.Format("select * from [{0}$]", "Sheet1");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
// populates the comboBox (cbSuppList) with all column headers
for (int i = 3; i < dataGridView1.Columns.Count; i++)
{
cbSuppList.Items.Add(dataGridView1.Columns[i].HeaderText);
}
}
Ниже приведен код «Сохранить» из таблицы данных в Excel в формате allbeit .xls
private void btnSave_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
for (i = 0; i <= dataGridView1.Rows.Count - 1; i++)
{
for (j = 0; j <= dataGridView1.Columns.Count - 1; j++)
{
DataGridViewCell cell = dataGridView1[j, i];
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
}
}
xlWorkBook.SaveAs("C:/Documents and Settings/User/Desktop/Visual Studio/GBstock/GBstock/bin/Debug/FORM TEST.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
}