1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
//! xlsxwriter-rs //! ============= //! //! Rust binding of [libxlsxwriter](https://github.com/jmcnamara/libxlsxwriter) //! //! ** API of this library is not stable. ** //! //! Supported Features //! ------------------ //! //! * 100% compatible Excel XLSX files. //! * Full Excel formatting. //! * Merged cells. //! * Autofilters. //! * Data validation and drop down lists. //! * Worksheet PNG/JPEG images. //! * Cell comments. //! //! Coming soon //! ----------- //! * Charts. //! //! Examples //! -------- //! //! ![Result Image](https://github.com/informationsea/xlsxwriter-rs/raw/master/images/simple1.png) //! //! ```rust //! use xlsxwriter::*; //! //! # fn main() -> Result<(), XlsxError> { //! let workbook = Workbook::new("simple1.xlsx"); //! let mut format1 = workbook.add_format() //! .set_font_color(FormatColor::Red); //! //! let mut format2 = workbook.add_format() //! .set_font_color(FormatColor::Blue) //! .set_underline(FormatUnderline::Single); //! //! let mut format3 = workbook.add_format() //! .set_font_color(FormatColor::Green) //! .set_align(FormatAlignment::CenterAcross) //! .set_align(FormatAlignment::VerticalCenter); //! //! let mut sheet1 = workbook.add_worksheet(None)?; //! sheet1.write_string(0, 0, "Red text", Some(&format1))?; //! sheet1.write_number(0, 1, 20., None)?; //! sheet1.write_formula_num(1, 0, "=10+B1", None, 30.)?; //! sheet1.write_url( //! 1, //! 1, //! "https://github.com/informationsea/xlsxwriter-rs", //! Some(&format2), //! )?; //! sheet1.merge_range(2, 0, 3, 2, "Hello, world", Some(&format3))?; //! //! sheet1.set_selection(1, 0, 1, 2); //! sheet1.set_tab_color(FormatColor::Cyan); //! workbook.close()?; //! # Ok(()) //! # } //! ``` //! //! Please read [original libxlsxwriter document](https://libxlsxwriter.github.io/worksheet_8h.html) for description missing functions. //! Most of this document is based on libxlsxwriter document. extern crate libxlsxwriter_sys; mod chart; mod error; mod format; mod validation; mod workbook; mod worksheet; pub use chart::{Chart, ChartDashType, ChartFill, ChartLine, ChartSeries, ChartType}; pub use error::XlsxError; pub use format::{ Format, FormatAlignment, FormatBorder, FormatColor, FormatPatterns, FormatScript, FormatUnderline, }; pub use validation::{ DataValidation, DataValidationCriteria, DataValidationErrorType, DataValidationType, }; pub use workbook::Workbook; pub use worksheet::{ CommentOptions, DateTime, GridLines, HeaderFooterOptions, ImageOptions, PaperType, Protection, RowColOptions, Worksheet, WorksheetCol, WorksheetRow, }; use std::ffi::CString; fn convert_bool(value: bool) -> u8 { let result = if value { libxlsxwriter_sys::lxw_boolean_LXW_TRUE } else { libxlsxwriter_sys::lxw_boolean_LXW_FALSE }; result as u8 } fn convert_str(value: &str) -> Vec<u8> { CString::new(value).unwrap().as_bytes_with_nul().to_vec() } #[cfg(test)] mod test;