Excel C#输入到特定单元格
问题描述:
我想让excel自动使用C#将数字“6”放入单元格“F6”中。我一直在寻找所有,我找不到直接的答案。我已经在C#表单中引用了excel。任何帮助是极大的赞赏Excel C#输入到特定单元格
using Excel = Microsoft.Office.Interop.Excel;
答
从那儿剽窃的online documentation:
var xl = new Excel.Application();
xl.Visible = true;
var wb = (Excel._Workbook)(xl.Workbooks.Add(Missing.Value));
var sheet = (Excel._Worksheet)wb.ActiveSheet;
sheet.Cells[6, 6] = "6";
其他有价值的资源可以在this question找到。
答
这里的代码从Excel的插件,我写加载数据库视图的一个片段。如果您想要将数据插入到一个单元格中以插入多行数据,那么它有一个重要的优化。
private void Fill()
{
if (string.IsNullOrEmpty(CurrConnectionStr)) return;
SelectedTable = TableComboBox.Text;
if (string.IsNullOrEmpty(SelectedTable)) return;
try
{
Globals.ThisAddIn.Application.Cells.ClearContents();
var dataTable = new System.Data.DataTable();
var query = string.Format(RowsQuery, SelectedTable);
using (var sqlDataAdapter = new SqlDataAdapter(query, CurrConnectionStr))
{
sqlDataAdapter.Fill(dataTable);
}
var excelApplicationObject = Globals.ThisAddIn.Application;
int rowNumber = 1;
foreach (System.Data.DataColumn column in dataTable.Columns)
{
int columnNumber = dataTable.Columns.IndexOf(column) + 1;
excelApplicationObject.Cells[rowNumber, columnNumber].Value2 = column.ColumnName;
}
rowNumber += 1;
foreach (System.Data.DataRow row in dataTable.Rows)
{
excelApplicationObject
.Cells
.Range[
excelApplicationObject.Cells[rowNumber, 1],
excelApplicationObject.Cells[rowNumber, row.ItemArray.Count()]]
.Value2 = row.ItemArray;
rowNumber++;
}
excelApplicationObject.Cells[rowNumber, 1] = "View Name: ";
excelApplicationObject.Cells[rowNumber, 2] = SelectedTable;
rowNumber += 1;
excelApplicationObject.Cells[rowNumber, 1] = "Saved At:";
excelApplicationObject.Cells[rowNumber, 2] = DateTime.Now.ToLongTimeString();
rowNumber += 1;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
谢谢,真的很好,真的很好,如果几乎完成了我写的程序。认真地感谢帮助! –