グリッドビューを更新してから、グリッドビューのコンテンツをcsvまたはxlsxファイルの続行に保存します。その後、グリッドビューを再度更新し、ファイルの続きにコンテンツを保存します。
例 :
Gridviewコンテンツ1:
保存先:列1-255
Gridview content2:
保存先:列256-500
..。
同じファイルを続けて保存するにはどうすればよいですか?(過去の列を上書きしないでください)
私の悪い英語の例:)
私の保存コード:
Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
ExcelApp.Application.Workbooks.Add(Type.Missing);
ExcelApp.Columns.ColumnWidth = 20;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Rows[0].Cells.Count; j++)
{
ExcelApp.Cells[i + 1, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
}
if (!textBox1.Text.Contains(".xlsx"))
{
textBox1.Text = textBox1.Text.Replace(".xls", ".xlsx");
}
ExcelApp.ActiveWorkbook.SaveCopyAs(textBox1.Text);
ExcelApp.ActiveWorkbook.Saved = true;
ExcelApp.Quit();
そして、Excelファイルからの私のインポート(列の選択範囲は255です):
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=NO;IMEX=1;""", txtPath.Text);
string query = String.Format("select * from [CA:DA]", "Sheet1");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
これは大きなExcelファイルの手がかりになりました!15000列あります!
try
{
for (int row = 0; row <= dataGridView1.RowCount-1; row++)
{
for (int cell = 0; cell <= dataGridView1.Rows[0].Cells.Count-1; cell++)
{
string cellst = dataGridView1.Rows[row].Cells[cell].Value.ToString();
dataGridView1.Rows[row].Cells[cell].Value = Int64.Parse(cellst) + 1;
}
}
}
catch
{
MessageBox.Show("Data Format Error. Please Review your file for not numeric data!");
}