C# 将OracleDataReader写入excel C.net
我需要帮助。如何将表格中的每一行写入Excel文件 问题1:如何从OracleDataReader获取每个单元格或每行的值 问题2:表中的列数可能会有所不同。我应该读取每个单元格并将其写入Excel还是按行 代码:C# 将OracleDataReader写入excel C.net,c#,.net,excel,oracle,C#,.net,Excel,Oracle,我需要帮助。如何将表格中的每一行写入Excel文件 问题1:如何从OracleDataReader获取每个单元格或每行的值 问题2:表中的列数可能会有所不同。我应该读取每个单元格并将其写入Excel还是按行 代码: 所以我想出来了。这是我现在使用的代码。我用数据库中的不同表进行了尝试 问:有人知道如何从excel动态读取数据并将数据加载到数据库中吗?我的意思是,动态构造INSERT命令 [WebMethod] public string dictToExcel(string di
所以我想出来了。这是我现在使用的代码。我用数据库中的不同表进行了尝试 问:有人知道如何从excel动态读取数据并将数据加载到数据库中吗?我的意思是,动态构造INSERT命令
[WebMethod]
public string dictToExcel(string dict_name)
{
string connectionString = ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString;
OracleConnection connection = new OracleConnection(connectionString);
try
{
connection.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = connection;
cmd.CommandText = "SELECT * from " + dict_name;
cmd.CommandType = CommandType.Text;
OracleDataReader dataReader = cmd.ExecuteReader();
IWorkbook workbook;
workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet 1");
int b = 0;
while (dataReader.Read())
{
int n = 0;
IRow row = sheet.CreateRow(b);
while (n < dataReader.FieldCount)
{
ICell cell = row.CreateCell(n);
String columnName = dataReader.GetValue(n).ToString();
cell.SetCellValue(columnName);
n++;
}
b++;
}
是:dict_name应该是表的名称吗?这不能工作,因为参数不能用于表示表或字段的属性names@steve参数将通过http响应来自外部。@marc_感谢您的编辑,为什么不使用MS Query?它内置于Excel@Hambone我是用NPOI做的。
[WebMethod]
public string dictToExcel(string dict_name)
{
string connectionString = ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString;
OracleConnection connection = new OracleConnection(connectionString);
try
{
connection.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = connection;
cmd.CommandText = "SELECT * from " + dict_name;
cmd.CommandType = CommandType.Text;
OracleDataReader dataReader = cmd.ExecuteReader();
IWorkbook workbook;
workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet 1");
int b = 0;
while (dataReader.Read())
{
int n = 0;
IRow row = sheet.CreateRow(b);
while (n < dataReader.FieldCount)
{
ICell cell = row.CreateCell(n);
String columnName = dataReader.GetValue(n).ToString();
cell.SetCellValue(columnName);
n++;
}
b++;
}