C#写Excel(OleDB)
先辟谣(至少对Excel2010来说)
IMEX ( IMport EXport mode )设置
IMEX 有三种模式,各自引起的读写行为也不同,容後再述:
0 is Export mode:只能写入
1 is Import mode:只能读取
2 is Linked mode (full update capabilities):读写均可
我这里特别要说明的就是 IMEX 参数了,因为不同的模式代表著不同的读写行为:
当IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
IMEX=2的是写不了的,还不如不加.0:写,1读
IMEX=1 / IMEX=2:不能修改表“用户”的设计。它在只读数据库中。 上代码:
using System;
using System.Data;
using System.Data.OleDb; namespace ConsoleApplication2 {
class Program {
static void Main(string[] args) {
const string strPath = @"..\MyTable.xlsx";
OleDbConnection _conn = null; _conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ strPath
+ ";Extended Properties='Excel 12.0;IMEX=0'");
try
{
_conn.Open();
string sqlDropTb = "DROP TABLE [用户]";
string sqlCreate = "CREATE TABLE [用户] ([ID] INTEGER, [姓名] VarChar)";
string sqlInsert = "INSERT INTO [用户] VALUES ( 1, 'Andy' )";
string sqlUpdate = "UPDATE [用户] SET [姓名] = 'Cat' WHERE [ID]=1";
OleDbCommand _cmd = new OleDbCommand(sqlDropTb, _conn);
Console.WriteLine(_cmd.ExecuteNonQuery() + "行受影响 Drop"); _cmd = new OleDbCommand(sqlCreate, _conn);
Console.WriteLine(_cmd.ExecuteNonQuery() + "行受影响 Create"); _cmd = new OleDbCommand(sqlInsert, _conn);
Console.WriteLine(_cmd.ExecuteNonQuery() + "行受影响 Insert"); _cmd = new OleDbCommand(sqlUpdate, _conn);
Console.WriteLine(_cmd.ExecuteNonQuery() + "行受影响 Update");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (_conn != null)
{
_conn.Close();
_conn = null;
}
}
Console.ReadKey();
}
}
}
优点:像写数据库一样写Excel
缺点:只能像写数据库一样写Excel
C#写Excel(OleDB)的更多相关文章
- java的poi技术写Excel的Sheet
在这之前写过关于java读,写Excel的blog如下: Excel转Html java的poi技术读,写Excel[2003-2007,2010] java的poi技术读取Excel[2003-20 ...
- java的poi技术读,写Excel[2003-2007,2010]
在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...
- 使用Python xlwt写excel文件
如果需要使用Python写Excel文件,首先下载或者安装xlwt. pip install xlwt 下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件: 创建工作簿(work ...
- c# 解决IIS写Excel的权限问题
c# 解决IIS写Excel的权限问题 from: http://www.jb51.net/article/31473.htm 发布:mdxy-dxy 字体:[增加 减小] 类型:转载 使用以上方法必 ...
- java 写 Excel(不生成实体文件,写为流的形式)
java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...
- Pandas 基础(4) - 读/写 Excel 和 CSV 文件
这一节将分别介绍读/写 Excel 和 CSV 文件的各种方式: - 读入 CSV 文件 首先是准备一个 csv 文件, 这里我用的是 stock_data.csv, 文件我已上传, 大家可以直接下载 ...
- python读、写、修改、追写excel文件
三个工具包 python操作excel的三个工具包如下 xlrd: 对excel进行读相关操作 xlwt: 对excel进行写相关操作 xlutils: 对excel读写操作的整合 注意,只能操作.x ...
- Python3 读、写Excel文件
首先,简单介绍一下EXECL中工作簿和工作表的区别: 工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET). 一个工作簿就是一个独立的文件 一个工作簿里面可以有1 ...
- C# 读带复选框的excel,写excel并设置字体、边框、背景色
这是一篇excel读写功能大汇总,通过C#调用Microsoft.Office.Interop.Excel.dll才能完成任何复杂格式excel的读写操作. 本文需要读取的excel格式如下: 可见表 ...
随机推荐
- windows下尝试编写node模块
1,首先参考http://www.cnblogs.com/yupeng/p/3469444.html写了一个模块 2,按照指引运行 F:\Program Files\nodejs\mymodule&g ...
- taro 学习资料
taro 学习资料 学习资料 网址 github https://github.com/NervJS/taro taro 官方文档 https://nervjs.github.io/taro/docs ...
- roadhog 知识点
roadhog 是一个 cli 工具,提供 server. build 和 test 三个命令,分别用于本地调试和构建,并且提供了特别易用的 mock 功能.命令行体验和 create-react-a ...
- java中length与length()
length是对数组而言的,指的是数组的长度. length()是对字符串而言的,指的是字符串所包含的字符个数. public class LengthDemo { public static voi ...
- 为什么人工智能用Python
开发效率高.python有很多库很方便做人工智能,比如numpy, scipy做数值计算的,sklearn做机器学习的,pybrain做神经网络的,matplotlib将数据可视化的. 如果很在乎性能 ...
- mysqlli 的基本用法
Mysqli是php5之后才有的功能 需要修改php.ini的配置文件 查找下面的语句: ;extension=php_mysqli.dll 将其修改为:extension=php_mysqli.dl ...
- PHP批量添加数据
<?php // 连接数据库 header('content-type:text/html;charset=utf-8'); define('DB_HOST','127.0.0.1'); def ...
- PHP 如何自定义函数
PHP 如何自定义函数 使用Function来自定义一个函数:格式如下:function function_name( $data ){ /** * 函数操作 */}注意:函数命名和自定义变量一样.只 ...
- PHP echo()、print()、print_r()、var_dump()、var_export()的区别
PHP中echo.print.print_r.var_dump.var_export的用法与区别 这些均为输出变量的内容: echo();不是函数.是PHP语句.没有返回值:输出一个或者多个字符串或者 ...
- C# 生成时间戳
编写网络程序中难免用到一些时间戳. 早前不知道哪里复制过一个代码,如下: public static string GetTimeStamp() { TimeSpan ts = DateTime.Ut ...