Esempio n. 1
0
        //https://msdn.microsoft.com/de-de/library/microsoft.office.interop.excel.workbooks.open(v=office.11).aspx
        public void Open(int UpdateLinks                = 0,
                         bool ReadOnly                  = true,
                         int Format                     = 5,
                         string Password                = "",
                         string WriteResPassword        = "",
                         bool IgnoreReadOnlyRecommended = true,
                         XlPlatform Origin              = XlPlatform.xlWindows,
                         string Delimiter               = "",
                         bool Editable                  = false,
                         bool Notify                    = false,
                         bool Converter                 = false,
                         bool AddToMru                  = false,
                         bool Local                     = false,
                         bool CorruptLoad               = false)
        {
            try
            {
                _objWorkBook = _objExcel.Workbooks.Open(_fileName, _updateLinks, _readOnly, _format, _password, _writeResPassword, _ignoreReadOnlyRecommended, _origin,
                                                        _delimiter, _editable, _notify, _converter, _addToMru, _local, _corruptLoad);

                _ReadWorkSheet();
                //return true;
            }
            catch (Exception e)
            {
                //throw new Exception(e.Message);
                //return false;
            }
        }
Esempio n. 2
0
        public ExcelWorker(string FileName)
        {
            _objExcel  = new Application();
            _workSheet = 1;
            _fileName  = FileName;

            _updateLinks               = 0;
            _readOnly                  = true;
            _format                    = 5;
            _password                  = "";
            _writeResPassword          = "";
            _ignoreReadOnlyRecommended = true;
            _origin                    = XlPlatform.xlWindows;
            _delimiter                 = "";
            _editable                  = false;
            _notify                    = false;
            _converter                 = false;
            _addToMru                  = false;
            _local       = false;
            _corruptLoad = false;
        }
 /// <summary>载入一个文本文件,并将其作为包含单个工作表的新工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。
 /// 说明:
 /// FieldInfo 参数信息
 /// 只有在安装并选定了中国台湾地区语言支持时才可使用 xlEMDFormat。xlEMDFormat 常量指定使用中国台湾地区纪元日期。
 /// 列说明符可为任意顺序。输入数据中如果某列没有列说明符,则用常规设置对该列进行分列处理。
 /// </summary>
 /// <param name="Filename">指定要打开和分列的文本文件的名称。</param>
 /// <param name="Origin">指定文本文件来源。可为以下 XlPlatform 常量之一:xlMacintosh、xlWindows 或 xlMSDOS。此外,它还可以是一个整数,表示所需代码页的代码页编号。例如,“1256”指定源文本文件的编码是阿拉伯语 (Windows)。如果省略该参数,则此方法将使用“文本导入向导”中“文件原始格式”选项的当前设置。</param>
 /// <param name="StartRow">文本分列处理的起始行号。默认值为 1。</param>
 /// <param name="DataType">指定文件中数据的列格式。可为以下 XlTextParsingType 常量之一:xlDelimited 或 xlFixedWidth。如果未指定该参数,则 Microsoft Excel 将尝试在打开文件时确定列格式。</param>
 /// <param name="TextQualifier">指定文本识别符号。</param>
 /// <param name="ConsecutiveDelimiter">如果为 True,则将连续分隔符视为一个分隔符。默认值为 False。</param>
 /// <param name="Tab">如果为 True,则将制表符用作分隔符(DataType 必须为 xlDelimited)。默认值为 False。</param>
 /// <param name="Semicolon">如果为 True,则将分号用作分隔符(DataType 必须为 xlDelimited)。默认值为 False。</param>
 /// <param name="Comma">如果为 True,则将逗号用作分隔符(DataType 必须为 xlDelimited)。默认值为 False。</param>
 /// <param name="Space">如果为 True,则将空格用作分隔符(DataType 必须为 xlDelimited)。默认值为 False。</param>
 /// <param name="Other">如果为 True,则将 OtherChar 参数指定的字符用作分隔符(DataType 必须为 xlDelimited)。默认值为 False。</param>
 /// <param name="OtherChar">(如果 Other 为 True,则为必选项)。当 Other 为 True 时,指定分隔符。如果指定了多个字符,则仅使用字符串中的第一个字符而忽略剩余字符。</param>
 /// <param name="FieldInfo">包含单列数据相关分列信息的数组。对该参数的解释取决于 DataType 的值。如果此数据由分隔符分隔,则该参数为由两元素数组组成的数组,其中每个两元素数组指定一个特定列的转换选项。第一个元素为列标(从 1 开始),第二个元素是 XlColumnDataType 的常量之一,用于指定分列方式。</param>
 /// <param name="TextVisualLayout">文本的可视布局。</param>
 /// <param name="DecimalSeparator">识别数字时,Microsoft Excel 使用的小数分隔符。默认设置为系统设置。</param>
 /// <param name="ThousandsSeparator">识别数字时,Excel 使用的千位分隔符。默认设置为系统设置。</param>
 /// <param name="TrailingMinusNumbers">如果应将结尾为减号字符的数字视为负数处理,则指定为 True。如果为 False 或省略该参数,则将结尾为减号字符的数字视为文本处理。</param>
 /// <param name="Local">如果分隔符、数字和数据格式应使用计算机的区域设置,则指定为 True。</param>
 /// <returns></returns>
 public Workbook OpenText(string Filename, XlPlatform? Origin = null, int? StartRow = null, XlTextParsingType? DataType = null, XlTextQualifier? TextQualifier = null, bool? ConsecutiveDelimiter = null, bool? Tab = null, bool? Semicolon = null, bool? Comma = null, bool? Space = null, bool? Other = null, string OtherChar = null, int?[] FieldInfo = null, string TextVisualLayout = null, char? DecimalSeparator = null, char? ThousandsSeparator = null, bool? TrailingMinusNumbers = null, bool? Local = null)
 {
     _objaParameters = new object[18] {
         Filename == null ? System.Type.Missing : Filename,
         Origin == null ? System.Type.Missing : Origin,
         StartRow == null ? System.Type.Missing : StartRow,
         DataType == null ? System.Type.Missing : DataType,
         TextQualifier == null ? System.Type.Missing : TextQualifier,
         ConsecutiveDelimiter == null ? System.Type.Missing : ConsecutiveDelimiter,
         Tab == null ? System.Type.Missing : Tab,
         Semicolon == null ? System.Type.Missing : Semicolon,
         Comma == null ? System.Type.Missing : Comma,
         Space == null ? System.Type.Missing : Space,
         Other == null ? System.Type.Missing : Other,
         OtherChar == null ? System.Type.Missing : OtherChar,
         FieldInfo == null ? System.Type.Missing : FieldInfo,
         TextVisualLayout == null ? System.Type.Missing : TextVisualLayout,
         DecimalSeparator == null ? System.Type.Missing : DecimalSeparator,
         ThousandsSeparator == null ? System.Type.Missing : ThousandsSeparator,
         TrailingMinusNumbers == null ? System.Type.Missing : TrailingMinusNumbers,
         Local == null ? System.Type.Missing : Local
     };
     return new Workbook(_objWorkbooks.GetType().InvokeMember("OpenText", BindingFlags.InvokeMethod, null, _objWorkbooks, _objaParameters));
 }
 /// <summary>打开一个工作簿,返回 Workbook
 /// </summary>
 /// <param name="Filename">要打开的工作簿的文件名</param>
 /// <param name="UpdateLinks">指定文件中链接的更新方式。如果省略本参数,则提示用户选择链接的更新方式。否则,该参数的取值应为下表中的某个值。
 /// 您可在 UpdateLinks 参数中指定下面的一个值,以确定文件的分隔字符:
 /// 0 不更新任何引用。 
 /// 1 更新外部引用,但不更新远程引用。
 /// 2 更新远程引用,但不更新外部引用。 
 /// 3 同时更新远程引用和外部引用。 </param>
 /// <param name="ReadOnly">如果为 True,则以只读模式打开工作簿。</param>
 /// <param name="Format">如果 Microsoft Excel 正在打开文本文件,则由此参数指定分隔符。如果省略此参数,则使用当前的分隔符。有关此参数值的详细信息,请参阅“备注”部分。
 /// 您可在 Format 参数中指定下面的一个值,以确定文件的分隔字符:
 /// 1 标签 
 /// 2 逗号 
 /// 3 空格 
 /// 4 分号 
 /// 5 无 
 /// 6 自定义字符(请参阅 Delimiter 参数)</param>
 /// <param name="Password">一个字符串,包含打开受保护工作簿所需的密码。如果省略此参数并且工作簿已设置密码,则提示用户输入密码。</param>
 /// <param name="WriteResPassword">一个字符串,包含写入受保护工作簿所需的密码。如果省略此参数并且工作簿已设置密码,则提示用户输入密码。</param>
 /// <param name="IgnoreReadOnlyRecommended">如果为 True,则不让 Microsoft Excel 显示只读的建议消息(如果该工作簿以“建议只读”选项保存)。</param>
 /// <param name="Origin">如果该文件为文本文件,则此参数用于指示该文件来源于何种操作系统(以便正确映射代码页和回车/换行符 (CR/LF))。可为以下 XlPlatform 常量之一:xlMacintosh、xlWindows 或 xlMSDOS。如果省略此参数,则使用当前操作系统。</param>
 /// <param name="Delimiter">如果该文件为文本文件并且 Format 参数为 6,则此参数是一个字符串,指定用作分隔符的字符。例如,可使用 Chr(9) 代表制表符,使用“,”代表逗号,使用“;”代表分号,或者使用自定义字符。只使用字符串的第一个字符。</param>
 /// <param name="Editable">如果文件为 Microsoft Excel 4.0 加载宏,则此参数为 True 时可打开该加载宏以使其在窗口中可见。如果此参数为 False 或被省略,则以隐藏方式打开加载宏,并且无法设为可见。本选项不能应用于由 Microsoft Excel 5.0 或更高版本的 Microsoft Excel 创建的加载宏。如果文件是 Excel 模板,则参数值为 True 时,会打开指定模板进行编辑。参数值为 False 时,可根据指定模板打开新的工作簿。默认值为 False。</param>
 /// <param name="Notify">当文件不能以可读写模式打开时,如果此参数为 True,则可将该文件添加到文件通知列表。Microsoft Excel 将以只读模式打开该文件并轮询文件通知列表,并在文件可用时向用户发出通知。如果此参数为 False 或被省略,则不请求任何通知,并且不能打开任何不可用的文件。</param>
 /// <param name="Converter">打开文件时试用的第一个文件转换器的索引。首先试用的是指定的文件转换器;如果该转换器不能识别此文件,则试用所有其他转换器。转换器索引由 FileConverters 属性返回的转换器行号组成。</param>
 /// <param name="AddToMru">如果为 True,则将该工作簿添加到最近使用的文件列表中。默认值为 False。</param>
 /// <param name="Local">如果为 True,则以 Microsoft Excel(包括控制面板设置)的语言保存文件。如果为 False(默认值),则以 Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA):Microsoft Visual Basic 的宏语言版本,用于编写基于 Microsoft Windows 的应用程序,内置于多个 Microsoft 程序中。) 的语言保存文件,其中 Visual Basic for Applications (VBA) 通常为美国英语版本,除非从中运行 Workbooks.Open 的 VBA 项目是旧的已国际化的 XL5/95 VBA 项目。</param>
 /// <param name="CorruptLoad">可为以下常量之一:xlNormalLoad、xlRepairFile 和 xlExtractData。如果未指定任何值,则默认行为通常为普通加载,但如果 Excel 已尝试打开该文件,则可以是安全加载或数据恢复状态。首先尝试普通加载。如果 Excel 在打开文件时停止操作,则尝试安全加载状态。如果 Excel 再次停止操作,则尝试数据恢复状态。</param>
 /// <returns></returns>
 public Workbook Open(string Filename, object UpdateLinks = null, bool? ReadOnly = null, object Format = null, string Password = null, string WriteResPassword = null, bool? IgnoreReadOnlyRecommended = null, XlPlatform? Origin = null, char? Delimiter = null, bool? Editable = null, bool? Notify = null, object Converter = null, bool? AddToMru = null, bool? Local = null, XlCorruptLoad? CorruptLoad = null)
 {
     _objaParameters = new object[15] {
                                                         Filename,
                                                         UpdateLinks == null ? System.Type.Missing:UpdateLinks,
                                                         ReadOnly == null ? System.Type.Missing:ReadOnly,
                                                         Format == null ? System.Type.Missing:Format,
                                                         Password == null ? System.Type.Missing:Password,
                                                         WriteResPassword == null ? System.Type.Missing:WriteResPassword,
                                                         IgnoreReadOnlyRecommended == null ? System.Type.Missing:IgnoreReadOnlyRecommended,
                                                         Origin == null ? System.Type.Missing:Origin,
                                                         Delimiter == null ? System.Type.Missing:Delimiter,
                                                         Editable == null ? System.Type.Missing:Editable,
                                                         Notify == null ? System.Type.Missing:Notify,
                                                         Converter == null ? System.Type.Missing:Converter,
                                                         AddToMru == null ? System.Type.Missing:AddToMru,
                                                         Local == null ? System.Type.Missing:Local,
                                                         CorruptLoad == null ? System.Type.Missing:CorruptLoad
     };
     return new Workbook(_objWorkbooks.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, _objWorkbooks, _objaParameters));
 }