用c#读取和写入xlsx文件
时间: 2023-02-05 15:05:46 浏览: 98
c语言是一种编程语言,最早由计算机科学家丹尼斯·莫里斯·里奇在1972年创建。它是一种面向过程的语言,通常被用于系统编程和底层开发,如操作系统、驱动程序等。它也可以用于应用程序开发,如游戏和其他软件。在许多情况下,c语言是开发高性能程序的首选语言。
相关问题
c# datagridview使用FileDialog 的方法读取写入excel
你可以使用 C# 的 DataGridView 控件与 OpenFileDialog 组件来读取和写入 Excel 文件。
首先,你需要引入以下命名空间:
```csharp
using System;
using System.Data;
using System.Windows.Forms;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
```
然后,你可以创建一个方法来加载 Excel 文件到 DataGridView 中:
```csharp
private void LoadExcelToDataGridView()
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = openFileDialog.FileName;
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open(filePath);
Excel.Worksheet worksheet = workbook.ActiveSheet;
DataTable dt = new DataTable();
for (int i = 1; i <= worksheet.UsedRange.Columns.Count; i++)
{
dt.Columns.Add("Column " + i.ToString());
}
for (int row = 1; row <= worksheet.UsedRange.Rows.Count; row++)
{
DataRow dr = dt.NewRow();
for (int col = 1; col <= worksheet.UsedRange.Columns.Count; col++)
{
dr[col - 1] = worksheet.Cells[row, col].Value;
}
dt.Rows.Add(dr);
}
dataGridView.DataSource = dt;
workbook.Close();
excelApp.Quit();
}
}
```
上述代码中,我们使用了 Microsoft.Office.Interop.Excel 库来读取 Excel 文件并将其数据加载到 DataTable 中。然后,我们将 DataTable 设置为 DataGridView 的数据源。
接下来,你可以创建一个方法来将 DataGridView 的数据写入到 Excel 文件中:
```csharp
private void SaveDataGridViewToExcel()
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = saveFileDialog.FileName;
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.ActiveSheet;
for (int col = 1; col <= dataGridView.Columns.Count; col++)
{
worksheet.Cells[1, col] = dataGridView.Columns[col - 1].HeaderText;
}
for (int row = 1; row <= dataGridView.Rows.Count; row++)
{
for (int col = 1; col <= dataGridView.Columns.Count; col++)
{
worksheet.Cells[row + 1, col] = dataGridView.Rows[row - 1].Cells[col - 1].Value;
}
}
workbook.SaveAs(filePath);
workbook.Close();
excelApp.Quit();
}
}
```
在上述代码中,我们使用了 Microsoft.Office.Interop.Excel 库来创建一个新的 Excel 文件,并将 DataGridView 的数据写入到该文件中。
最后,你可以在你的按钮点击事件中调用这两个方法:
```csharp
private void btnLoad_Click(object sender, EventArgs e)
{
LoadExcelToDataGridView();
}
private void btnSave_Click(object sender, EventArgs e)
{
SaveDataGridViewToExcel();
}
```
请注意,为了使用 Microsoft.Office.Interop.Excel 库,你需要在项目中添加对 "Microsoft.Office.Interop.Excel" 的引用,并确保你的机器上已安装了 Microsoft Office。
希望这可以帮助到你!如果你有任何问题,请随时询问。
C#将Excel表格写入MDB文件
要将 Excel 表格写入 MDB 文件(Microsoft Access 数据库文件),你可以使用 C# 中的 OleDbConnection 和 OleDbDataAdapter 类来实现。下面是一个示例代码:
```csharp
using System;
using System.Data;
using System.Data.OleDb;
namespace ExcelToMDB
{
class Program
{
static void Main(string[] args)
{
string excelFilePath = @"path\to\your\excel\file.xlsx";
string mdbFilePath = @"path\to\your\mdb\file.mdb";
string excelConnectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={excelFilePath};Extended Properties='Excel 12.0 Xml;HDR=YES;'";
string mdbConnectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={mdbFilePath}";
using (OleDbConnection excelConnection = new OleDbConnection(excelConnectionString))
using (OleDbConnection mdbConnection = new OleDbConnection(mdbConnectionString))
{
try
{
excelConnection.Open();
mdbConnection.Open();
// 从 Excel 表格中读取数据
string selectQuery = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(selectQuery, excelConnection);
DataTable dataTable = new DataTable();
dataAdapter.Fill(dataTable);
// 将数据写入 MDB 文件
using (OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter))
{
dataAdapter.InsertCommand = commandBuilder.GetInsertCommand();
dataAdapter.Update(dataTable);
Console.WriteLine("Data written to MDB file successfully!");
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
}
```
在上面的代码中,你需要将 `path\to\your\excel\file.xlsx` 替换为实际的 Excel 文件路径,将 `path\to\your\mdb\file.mdb` 替换为实际的 MDB 文件路径。
首先,使用 `Microsoft.ACE.OLEDB.12.0` 提供程序创建一个连接字符串来连接到 Excel 文件。然后,使用 `Microsoft.Jet.OLEDB.4.0` 提供程序创建一个连接字符串来连接到 MDB 文件。
接下来,使用 OleDbConnection 打开 Excel 和 MDB 的连接。
然后,使用 OleDbDataAdapter 从 Excel 表格中读取数据,并将其填充到一个 DataTable 中。
最后,使用 OleDbCommandBuilder 创建插入命令,并使用 OleDbDataAdapter 的 Update 方法将数据写入 MDB 文件。
请确保你的系统中安装了适当的 OLEDB 提供程序(如 `Microsoft.ACE.OLEDB.12.0`)和相应的驱动程序。
希望这能满足你的需求!如果还有其他问题,请随时提问。