[英]how to write a dictionary to excel file using OLEDB in c#
我必须将字典(键,值对)写到Excel文件中。 我尝试使用Interop.Excel
并编写如下:
try
{
string file =@”D:\Someexcel.xls”
Interop.Excel.Application excelApp = new Interop.Excel.Application();
excelApp.Visible = true;
Interop.Excel.Workbook wb = excelApp.Workbooks.Open(file, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
Interop.Excel.Worksheet ws = wb.ActiveSheet as Interop.Excel.Worksheet;
Interop.Excel.Range rng = ws.get_Range("A1", Type.Missing);
//Write Key, Value as header
ws.Cells[1, 1] = "Key";
ws.Cells[1, 2] = “Value”;
int row = 2; // Initialize for keys.
foreach (string key in dict.Keys)
{
int column = 1; // Initialize for values in key.
ws.Cells[row, column] = key;
column++;
ws.Cells[row, column] = dict[key];
row++;
}
if (ws != null)
Marshal.ReleaseComObject(ws);
if (wb != null)
Marshal.ReleaseComObject(wb);
if (excelApp != null)
Marshal.ReleaseComObject(excelApp);
DialogResult result = MessageBox.Show(string.Format("Excel file created , you can find the file @" + file));
if (result == DialogResult.OK)
this.Close();
}
catch (Exception err)
{
string msg;
msg = "Error:";
msg = string.Concat(msg, err.Message);
msg = string.Concat(msg, "Line:");
msg = string.Concat(msg, err.Source);
MessageBox.Show(msg);
}
但是,此代码似乎更容易出错,而不是说服务器位置上的excel文件已损坏。 因此,我想尝试使用OLEDB。 我是OLEDB的新手。 在Internet上到处搜索,但没有信息如何编写字典。 您能帮我使用Insert
命令吗?
检查此示例以写入excel。
http://www.codeproject.com/Articles/8500/Reading-and-Writing-Excel-using-OLEDB
OLEDB与ADO.NET SqlDataAdapter
相似,您可以指定INSERT和UPDATE命令并使用DataTable
进行插入或更新。 对于字典,您可以执行类似的操作,将Key,Value用作DataColumns并将条目添加为行。
Havent”已选中,但您也许还可以以插入和更新的形式执行OledbCommand并以非查询的形式执行。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.